google / blockly-android

Blockly for Android
Apache License 2.0
671 stars 209 forks source link

AbstractBlocklyFragment should provide a standard Fragment, not a support.v4 Fragment #713

Closed lod closed 6 years ago

lod commented 6 years ago

As the minimum supported API version is 18 and standard Fragment support was introduced in API version 11 it is not necessary for AbstractBlocklyFragment to use the backported Fragment support library as it is currently doing.

Using the backported Fragment support causes conflicts with newer projects, which I would expect to be much more common than very old code bases.

As such AbstractBlocklyFragment should provide the standard Fragment.

AnmAtAnm commented 6 years ago

While the Fragment support classes were added in API 11, several of the their members are more recent. For example, [FragmentManager.getFragments()](https://developer.android.com/reference/android/app/FragmentManager.html#getFragments()) and .getPrimaryNavigationFragment() were each added in API 26, and have [support class equivalents](https://developer.android.com/reference/android/support/v4/app/FragmentManager.html#getFragments()).

We highly recommend most standard Android applications use AppCompatActivity and the related support classes so they can take advantage of several new features without having dependencies on the device OS version. The non-support classes should largely be seen as an implementation detail that the support classes can defer to. This is why the backward compatibility checkbox is enabled by default in the Android Studio new project wizard.