- PVSM.RU - https://www.pvsm.ru -

Ресурсы, о которых должен знать каждый Android-разработчик

Сегодня я хочу поделиться с вами моим вольным переводом статьи, написанной Сергеем Повзнером (Sergey Povzner). Сергей ведёт блог bongizmo.com [1] и занимается разработкой туристических гидов под общим названием Citybot [2].

В то время как Android продолжает свой невероятный рост [3], всё больше и больше программистов начинают разрабатывать приложения на этой платформе. Если ты начинаешь свой путь сегодня, то ты определенно — счастливчик. За последние годы Android значительно повзрослел и избавился от множества детских болезней. Информации по платформе более чем достаточно. Я же расскажу о самых важных ресурсах.

Статья будет полезна как новичкам, так и опытным разработчикам. Это гид по миру Android-разработки.

Книги

Может показаться, что изучать новую платформу по книгам в наши дни — способ весьма устаревший, и, возможно, вы правы. Но вы всё равно должны это делать — посмотрите статью Джефа Этвуда (Jeff Atwood) Программисты не читают книг — но вы должны [4].

Я рекомендую вот эти две книги:

  • The Busy Coder’s Guide to Android Development [5], написанная Марком Мерфи [6]. Глубокий охват (более 2000 страниц) и регулярные обновления делают эту книгу особенной. Безусловно, это лучшая модель для книги, рассказывающей о такой активно развивающейся теме, как Android SDK. У подписчиков есть возможность задавать вопросы Марку в открытые часы. Примеры из книги доступны на гитхабе [7]. Маст Рид!
  • Smashing UI [8] от Юхани Лейтемаки [9] (Juhani Lehtimaki). Отличная книга для любого Android-разработчика, который заботится о хорошем UI-дизайне.

developer.android.com

Перед тем, как начать писать своё первое приложение тщательно изучите Android Design [10]. Особенно эти статьи:

Обязательно загляните в секцию загрузок [15] — там можно найти шаблоны и исходники для различных иконок и виджетов.

Ну, что? Готовы писать код? Извините, продолжаем читать:

Stackoverflow

Инженеры Google, а также опытные программисты регулярно отвечают на интересные вопросы. Вот топ [23] лучших Android-специалистов по версии Stackoverflow. Я подписан на RSS-ленты многих людей, вот только некоторые из них: CommonsWare [24] (Марк Мерфи), Dianne Hackborn [25], Romain Guy [26], Reto Meier [27], Trevor Johns [28], Roman Nurik [29], Adam Powell [30].

Блоги

Во многих блогах можно подчерпнуть очень полезную и актуальную информацию:

Google+

Несмотря на то, что Google+ не стал социальной сетью, для нас это ценный источник информации по Android. Вот несколько людей, на кого можно обратить внимание: Tor Norbye [50] (ADT), Dianne Hackborn [51], Romain Guy [52], Chris Banes [53], Roman Nurik [54], Nick Butcher [55], Adam Powell [56], Rich Hyndman [57], Cyril Mottier [58], Paul Burke [59], Jeff Gilfelt [60].

Обязательно закруглите Джейка Вортона [61] (Jake Wharton). Джейк подарил нам ActionBarSherlock, ViewPageIndicator, NineOldAndroid и много [62] других опенсорсных библиотек для Android.

Также, вы можете присоединиться к этим сообществам в том же Google+:

Open Source: проекты

Читать чужой код — полезное занятие. Особенно, если речь идет про:

  • Приложение Google I/O [65]. Если хотите что-либо скопипастить, лучшего места не найти.
  • Photup [66] от Криса Бэйнса (Chris Banes)
  • Android-прототипы: глубокое погружение в Location [67] от Рето Майер (Reto Meier). В приложение демонстрируется использование определения местоположения, фрагментов и бекап-менеджера. Используйте аккуратно — код не обновлялся некоторое время.

Ну, и конечно, бесконечный источник: исходный код Android [68].

Open Source: библиотеки

Вот несколько самых полезных библиотек:

  • ActionBarSherlock [69] от Джейка Вортона (Jake Wharton). Библиотека, которая позволяет использовать родной action bar на четверках и кастомный на двойках, используя единые API и тему.
  • ViewPagerIndicator [70] от Джейка Вортона (Jake Wharton). Библиотечные виджеты совместимы с ViewPager из Android Support Library и с ActionBarSherlock. Используются с целью улучшения навигации.
  • NineOldAndroids [71] от Джейка Вортона (Jake Wharton). Позволяет использовать Animation API из Honeycomb на самых ранних версиях Android.
  • Universal-Image-Loader от Сергея Тарасевича [72]. Мощный и гибкий инструмент для асинхронной загрузки изображений, кэширования и вывода их на экран.
  • UrlImageViewHelper [73] от Коушика Датты [74] (Koushik Dutta). Автоматом подставляет в ImageView изображение загруженное по указанной ссылке. Умеет сохранять и кэшировать.
  • Android-BitmapCache [75] от Криса Бэйнса (Chris Banes). Специальный кэш для работы с Bitmap-объектами.
  • DiskLruCache [76] от Джейка Вортона (Jake Wharton). Java-реализация LRU кэша на диске ориентированная на совместимость с Android.

Если вам всё ещё мало, поищите на гитхабе [77]. Также, DevAppsDirect [78] — отличная коллекция опенсорсных вьюшек, виджетов и библиотек.

Лекции с Google I/O

Получить билет на Google I/O стало практически невозможно. Но все выступления доступны онлайн (обычно даже со слайдами). Вот ссылки на сессии разных лет: 2012 [79], 2011 [80], 2010 [81], 2009 [82].

Вот некоторые из моих любимых лекций:

Пожалуйста, остановитесь! Вы меня пугаете

Если статья кажется вам слегка пугающей, не отчаивайтесь. Некоторые ссылки будут полезны только начинающим, в то время как другие могут оказаться интересными для разработчиков всех уровней, желающих создавать крутейшие Android-приложения.

Несколько советов, о том, как эффективно всё это усвоить:

  • Во-первых, прочтите книги. Упоминал ли я, что вы должны читать книги? Это заложит правильную основу в знаниях Android-платформы.
  • Подпишитесь на блоги и RSS-ленты ответов со stackoverflow.
  • Создайте Android-дев-круг на Google+

Звёзды Android

Талантливые разработчики далают большой вклад в процветание экосистемы разработки под Android. Среди них я бы особо отметил двух. Эти парни сыграли огромную роль в том, чтобы сделать жизнь обычного Android-разработчика легче. Я говорю о Марке Мерфи [92] (Mark Murphy) и Джейке Вортоне [62] (Jake Wharton).

Марк и Джейк заработали пожизненное безлимитное пиво за самый большой и полезный вклад в Android open source. Если вы когда-нибудь их повстречаете, обязательно купите им что-нибудь выпить на их выбор. [поправочка по комментариям из поста-оригинала: пиво для Марка лучше отдайте Крису Бэйну, а лучшей наградой для Марка будет ваша подписка [93] на его книгу.]

Конечно же, не забудем Android-разработчиков и дизайнеров из Google, которые проделали большую работу над Android. Некоторые из них были упомянуты выше.

Конец, наконец

Вот и всё, друзья. Теперь у вас есть всё, чтобы делать крутейшие приложеньки! Хорошо, не совсем: вам всё ещё нужен крутой дизайнер, но это тема для отдельного поста. Но, что можно сказать теперь точно — вы готовы написать своё первое приложение под Android.

Счастливого кодинга!

PS: Я не переводчик, и русский — далеко не самая моя сильная сторона. Я просто хочу, чтобы эта отличная статья была на Хабре. Поэтому, пишите, пожалуйста, замечания обо всех ошибках (орфографических, грамматических и стилистических) в личку. Я постараюсь всё быстро поправить.

Автор: bluebyte

Источник [94]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/android-development/31446

Ссылки в тексте:

[1] bongizmo.com: http://www.bongizmo.com/blog/

[2] Citybot: http://www.citybot.com/index.html

[3] рост: http://en.wikipedia.org/wiki/Android_(operating_system)#Market_share_and_rate_of_adoption

[4] Программисты не читают книг — но вы должны: http://www.codinghorror.com/blog/2008/04/programmers-dont-read-books----but-you-should.html

[5] The Busy Coder’s Guide to Android Development: http://commonsware.com/Android/

[6] Марком Мерфи: http://commonsware.com/blog/

[7] гитхабе: https://github.com/commonsguy/cw-omnibus/

[8] Smashing UI: http://www.androiduipatterns.com/p/smashing-android-ui.html

[9] Юхани Лейтемаки: https://plus.google.com/102272971619910906878/posts

[10] Android Design: http://developer.android.com/design/get-started/creative-vision.html

[11] Устройства и экраны: http://developer.android.com/design/style/devices-displays.html

[12] Реакция на нажатие: http://developer.android.com/design/style/touch-feedback.html

[13] Метрики: http://developer.android.com/design/style/metrics-grids.html

[14] Иконография: http://developer.android.com/design/style/iconography.html

[15] загрузок: http://developer.android.com/intl/ru/design/downloads/index.html

[16] Советы и рекомендации по UI: http://developer.android.com/intl/ru/training/best-ux.html

[17] Советы и рекомендации по производительности: http://developer.android.com/intl/ru/training/best-performance.html

[18] Учимся эффективно работать с bitmap: http://developer.android.com/intl/ru/training/displaying-bitmaps/index.html

[19] Использование анимаций: http://developer.android.com/intl/ru/training/animation/index.html

[20] NineOldAndroids: http://nineoldandroids.com/

[21] Помощь по инструментам SDK: http://developer.android.com/intl/ru/tools/help/index.html

[22] Примеры из SDK: http://developer.android.com/intl/ru/tools/samples/index.html

[23] топ: http://stackoverflow.com/tags/android/topusers

[24] CommonsWare: http://stackoverflow.com/users/115145/commonsware

[25] Dianne Hackborn: http://stackoverflow.com/users/236398/hackbod

[26] Romain Guy: http://stackoverflow.com/users/298575/romain-guy

[27] Reto Meier: http://stackoverflow.com/users/822/reto-meier

[28] Trevor Johns: http://stackoverflow.com/users/186035/trevor-johns

[29] Roman Nurik: http://stackoverflow.com/users/102703/roman-nurik

[30] Adam Powell: http://stackoverflow.com/users/342605/adamp

[31] Android Dev Weekly: http://androiddevweekly.com/

[32] Джиюри Грелл: http://gyurigrell.com/

[33] блог: http://android-developers.blogspot.ru/

[34] Как избежать утечек памяти: http://android-developers.blogspot.ru/2009/01/avoiding-memory-leaks.html

[35] Анализ памяти Android-приложений: http://android-developers.blogspot.ru/2011/03/memory-analysis-for-android.html

[36] Роман Гай: http://www.curious-creature.org/category/android/

[37] Android Performance Case Study: http://www.curious-creature.org/2012/12/01/android-performance-case-study/

[38] фотограф: http://www.flickr.com/photos/romainguy/

[39] Чет Хаас: https://plus.google.com/104755487586666698979/about

[40] Codependent: http://graphics-geek.blogspot.ru/

[41] Блог: http://cyrilmottier.com/

[42] Советы по использованию ListView #5: увеличиваем область нажатия: http://cyrilmottier.com/2012/02/16/listview-tips-tricks-5-enlarged-touchable-areas/

[43] Твиты об Android-разработке: http://cyrilmottier.com/2012/04/20/android-tips-tweets/

[44] Утопия второй версии API гугл-карт: http://cyrilmottier.com/2012/12/07/the-google-maps-android-api-v2-utopia/

[45] О правильном подходе к запуску приложения: http://cyrilmottier.com/2013/01/23/android-app-launching-made-gorgeous/

[46] Pull-to-refresh: антипаттерн: http://cyrilmottier.com/2012/03/28/the-pull-to-refresh-an-anti-ui-pattern-on-android/

[47] Украшаем Android: http://blog.stylingandroid.com/

[48] Мысли кодера: http://daniel-codes.blogspot.ru/

[49] Expedia Hotels & Flights: https://play.google.com/store/apps/details?id=com.expedia.bookings

[50] Tor Norbye: https://plus.google.com/116539451797396019960/posts

[51] Dianne Hackborn: https://plus.google.com/105051985738280261832/posts

[52] Romain Guy: https://plus.google.com/109538161516040592207/posts

[53] Chris Banes: https://plus.google.com/+ChrisBanes/posts

[54] Roman Nurik: https://plus.google.com/+RomanNurik/posts

[55] Nick Butcher: https://plus.google.com/118292708268361843293/posts

[56] Adam Powell: https://plus.google.com/107708120842840792570/posts

[57] Rich Hyndman: https://plus.google.com/+RichHyndman/posts

[58] Cyril Mottier: https://plus.google.com/118417777153109946393/posts

[59] Paul Burke: https://plus.google.com/113406723988623654387/posts

[60] Jeff Gilfelt: https://plus.google.com/104992412719307414985/posts

[61] Джейка Вортона: https://plus.google.com/108284392618554783657/posts

[62] много: https://github.com/JakeWharton

[63] сообщество: https://plus.google.com/communities/105153134372062985968/stream/7db53d71-5bab-46fd-a3f2-a321fee334af

[64] Комьюнити: https://plus.google.com/communities/113499773637471211070

[65] Google I/O: https://code.google.com/p/iosched/

[66] Photup: https://github.com/chrisbanes/photup

[67] Android-прототипы: глубокое погружение в Location: https://code.google.com/p/android-protips-location/

[68] исходный код Android: https://github.com/android

[69] ActionBarSherlock: https://github.com/JakeWharton/ActionBarSherlock

[70] ViewPagerIndicator: https://github.com/JakeWharton/Android-ViewPagerIndicator

[71] NineOldAndroids: https://github.com/JakeWharton/NineOldAndroids

[72] Сергея Тарасевича: https://plus.google.com/104933810381807044162/posts

[73] UrlImageViewHelper: https://github.com/koush/UrlImageViewHelper

[74] Коушика Датты: http://www.koushikdutta.com/

[75] Android-BitmapCache: https://github.com/chrisbanes/Android-BitmapCache

[76] DiskLruCache: https://github.com/JakeWharton/DiskLruCache

[77] гитхабе: https://github.com/search?q=%5Bandroid%5D&ref=commandbar

[78] DevAppsDirect: https://play.google.com/store/apps/details?id=com.inappsquared.devappsdirect&feature=nav_result#?t=W251bGwsMSwxLDMsImNvbS5pbmFwcHNxdWFyZWQuZGV2YXBwc2RpcmVjdCJd

[79] 2012: https://developers.google.com/events/io/2012/sessions#android

[80] 2011: http://www.google.com/events/io/2011/sessions.html#android-track

[81] 2010: http://www.google.com/events/io/2010/sessions.html#Android

[82] 2009: http://www.google.com/events/io/2009/sessions.html#mobile

[83] Продвинутый дизайн для инженеров.: https://developers.google.com/events/io/2012/sessions/gooio2012/1204/

[84] Плавный UI.: https://developers.google.com/events/io/2012/sessions/gooio2012/109/

[85] Навигация в Android.: https://developers.google.com/events/io/2012/sessions/gooio2012/114/

[86] Итак, вы прочитали гид по дизайну. Что теперь?: https://developers.google.com/events/io/2012/sessions/gooio2012/115/

[87] Что нового в Android?: https://developers.google.com/events/io/2012/sessions/gooio2012/105/

[88] Что нового в ADT?: https://developers.google.com/events/io/2012/sessions/gooio2012/104/

[89] Управление памятью в Android-приложениях.: http://www.google.com/events/io/2011/sessions/memory-management-for-android-apps.html

[90] Пишем быстрые Android-приложения.: http://www.google.com/events/io/2010/sessions/writing-zippy-android-apps.html

[91] Разработка REST-клиентов.: http://www.google.com/events/io/2010/sessions/developing-RESTful-android-apps.html

[92] Марке Мерфи: https://github.com/commonsguy

[93] подписка: http://commonsware.com/

[94] Источник: http://habrahabr.ru/post/175825/