Освой программирование играючи
/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000
Android популярен. И Гугл старается сделать систему ещё лучше. Для этого программисты компании придумывают новые возможности и предлагают разработчикам использовать их в своих программах. Но не всегда это получается хорошо.
Здесь захотелось собрать все неудачные или спорные моменты из Android SDK. Каждый раздел будет дополняться деталями, раскрывающие недостатки.
Если вы начинали разрабатывать приложения под Android с 2011 года или раньше, то, наверняка, прошли через весь зоопарк, связанный с работой потоков. Почти каждый год появлялись новые способы, которые обещали лёгкую жизнь. А потом опять всё по новой.
Thread, Handler, Activity.runOnUiThread(Runnable), View.post(Runnable), AsyncTask, IntentService, Loader и т.д. Сейчас популярен RxJava, который Гугл потихоньку стал разрешать использовать и допускает его в связке с LiveData.
Фрагменты очень активно насаждались компанией Google, но многие разработчики яростно сопротивлялись. Они сложны, неудобны и непрактичны. Даже в самой компании некоторые программисты отчасти соглашались с этой точкой зрения.
На часы возлагались большие надежды, но по большому счёту они не выстрелили. Хотя Гугл что-то там постоянно допиливает, особого интереса у разработчиков к этой теме не наблюдается.
На данный момент рынок планшетов умирает. Вины Гугл в этом нет. Они активно работали в этом направлении и даже выпустили планшеты под своей маркой. У меня их было две штуки - первого и второго поколения. Но сейчас особо не акцентируют на них внимание. Все старые решения для работы с планшетами работоспособны (фрагменты для двухпанельных приложений), ничего нового больше не придумали, если не считать многооконный режим (пока не особо встречается).
В Android 4.4.2 очень широко рекламировалась возможность создавать виджеты на экране блокировки. Спустя год в Android 5.0 лавочку прикрыли.
Живые папки - они появились еще в Android 1.5. Я видел их в Android 2.2, но не понимал, зачем они нужны.
Когда появилась поддержка NFC, то одновременно Гугл представил Android Beam. Вы когда-нибудь пользовались этим? А разговоров-то было.
Daydream - это хранители экрана, знакомые нам по Windows. Формально они ещё существуют, у меня на сайте есть статья по их созданию. Но в 2016 году Гугл решил использовать это название для виртуальной реальности. Когда я слушал доклад на Google I/O, то подумал, что ослышался. Неужели фантазии не хватило на другое название?