CV5 Material Design Material Design • Android 5.0 (API 21) • Unifikovaný design napříč platformami (mobil, web) • Flat design • Jednoduché ovládací a navigační prvky RecyclerView • chytré ListView • Adapter (stejný jako u ListView) • LayoutManager (jak se zobrazují data) • ViewHolder (reprezentace položky) • ItemDecoration, ItemAnimator RecyclerView layoutManager = LinearLayoutManager(this) recycler.setLayoutManager(layoutManager) adapter = MyAdapter(data) recycler.setAdapter(adapter) class MyAdapter : RecyclerView.Adapter { CoordinatorLayout • super-powered layout • fancy animace • interakce • AppBarLayout, CollapsingToolbarLayout • Behaviors CoordinatorLayout SnackBar • Lepší Toast • Snackbar.make(view, “Hello”, Snackbar.LENGTH_SHORT).show(); https://developer.android.com/reference/android/support/design/widget/Snackbar.html Smart Location Library https://github.com/mrmans0n/smart-location-lib compile 'io.nlopez.smartlocation:library:3.3.3' SmartLocation.with(context).location() .start({ location -> … }); SmartLocation.with(context).location().stop(); a pár věcí o kterých by měl dobrý Android vývojář vědět adb • Android Debug Bridge • adb devices • adb logcat • adb pull / push • adb shell Log.x • Logování do Android Console • Log.d(String, String) • Log.d, Log.wtf, Log.e, Log.w, … Fragmenty • Když aktivita je málo • Má šílený lifecycle • Mohou být vnořené Plurals %d auto %d auta %d aut resouces.getQuantityString(R.plurals.cars, 2, 2) Dialogy https://github.com/afollestad/material-dialogs MaterialDialog.Builder(this) .title(R.string.title) .content(R.string.content) .positiveText(R.string.agree) .negativeText(R.string.disagree) .show() Options menu override fun onCreateOptionsMenu(Menu menu): Boolean { val inflater = getMenuInflater() inflater.inflate(R.menu.game_menu, menu) return true } override fun onOptionsItemSelected(MenuItem item): Boolean { // Handle item selection when (item.getItemId()) { R.id.new_game -> newGame() return true else -> return super.onOptionsItemSelected(item) } } Android Asset Studio https://romannurik.github.io/AndroidAssetStudio/ Google Play Services https://developers.google.com/android/guides/overview • Stahuje se stejně jako každá jiná aplikace • Služby jako jsou Maps, Wallet, G+, Location, Wear,… RxJava • Stream • Observable, Subscriber • http://rxmarbles.com/ http://reactivex.io/ • Crash/report analytics • User analytics • KPI • Adopce nové verze • Moc moc moc moc dat a čísel Fabric https://fabric.io Architektura • VM • View - Model • MVP • Model - View - Presenter • MVVM • Model - View - ViewModel • MVC • Model - View - Controller Kam dál? • https://developer.android.com • https://android-arsenal.com/ • Twitter - @JakeWharton, @AndroidDev, @androidstudio, @crafty, @chrisbanes, @cyrilmottier, @romannurik