Рекомендации по кодированию Android/дизайну
В недавнем вопросе я спросил, что меня направили на этот сайт: http://developer.android.com/design/index.html
Удивительный сайт, но он не ответил на один конкретный вопрос: каковы наилучшие практики/шаблоны проектирования, применяемые при разработке кода приложения?
Я искал MVC/MVP и т.д., и пока это дает результаты, это касается только фактической реализации указанных шаблонов, а не других доступных опций и т.д.
Я попытался декомпилировать и анализировать различные приложения Android, установленные по умолчанию, например Market, но я не смог найти структуру в коде Google. У кого-нибудь есть советы о том, как настроить Android-приложения таким образом, что они поддерживаются, расширяемы и т.д. Я знаю о широком значении этих слов и о том, что они чисто субъективны программисту в этом отношении, но я не могу выражайте это по-другому.
Одна из лучших практик, с которой я столкнулся, - это одно представление для каждой операции и большое количество действий в приложении для работы backstack, но, кроме этого, я не знаю, как на самом деле настроить сам Activity.
Ответы
Ответ 1
Вы должны смотреть (от Google IO 2011):
http://www.youtube.com/watch?v=WGIU2JX1U5Y
Это не о ICS, а о сотовых, но это все еще очень интересно...
Вы увидите, что ActionBar (есть также некоторые библиотеки, которые заставляют вас внедрять ActionBar в старых версиях android) становится все более важным и может быть найден в большинстве приложений Google для Android...
Также ViewPager используется много (для прокрутки по горизонтали между различными вкладками/представлениями), как на рынке...
Чтобы ваш проект был чистым, вы можете дать каждому виду отдельный XML файл, повторяющиеся элементы, которые вы используете, должны храниться в отдельном XML файле, который вы можете включить в любой другой XML файл (нижние колонтитулы, заголовки, разделители,... )
Надеюсь, это поможет вам!
Ответ 2
Прежде всего, прочитайте руководства API, в частности части Activities и Fragments. Но если у вас есть время, прочитайте все руководства по API, они действительно отличный ресурс для понимания разработки Android.
В зависимости от устройств Android, которые вы хотите поддержать, я бы рекомендовал использовать v4 Support Library и v7 Appcompat Library. Первая из них (v4 Support Library), которую я использую всегда из-за поддержки вложенных фрагментов (getChildFragmentManager() - не поддерживается на уровне API < API 18) и ViewPager. Библиотека Appcompat предназначена главным образом для поддержки Actionbar на устройствах с версиями Android ниже 4.0.
Я также изучил Gradle как вашу систему сборки и [http://developer.android.com/sdk/installing/studio.html](Android Studio) ( бесплатно) или IntelliJ IDEA (коммерческая) как ваша IDE.
Учитывая библиотеки сторонних разработчиков, стек библиотек, который я вижу в основном в наши дни (и использую сам по большей части):
- Guava как общая вспомогательная библиотека Java.
- Dagger и ButterKnife для инъекций зависимостей.
- OkHttp в качестве транспортной библиотеки HTTP.
- RetroFit или Volley в качестве библиотек REST.
- Picasso в качестве библиотеки загрузки изображений. Наличие хорошей библиотеки загрузки изображений, когда вам нужно загружать/отображать изображения с сервера, действительно важно в Android, потому что он заботится о работе с памятью и кешировании, что может быть очень тяжело, если вы попытаетесь сделать все это самостоятельно.
Альтернативы, которые также используются много:
Другие библиотеки, которые я использую и рекомендую:
- Компоненты Android CommonsWare, в частности cwac-adapter и cwac-camera. Последний из них предназначен для использования камеры в вашем приложении (вместо использования намерения), что также может быть очень сложно сделать самому.
- HoloAccent, что позволяет легко стилизовать ваше приложение для Android в стиле Holo.
Крис Банес (известный Android-разработчик) недавно выпустил исходный код одного из своих приложений, который вы можете использовать в качестве примера того, как создать приложение для Android, используя некоторые из упомянутых выше библиотек.
Ответ 3
Первое, что вам нужно узнать, - это очень хорошо работать с Android. Грок все это. Оттуда будет намного легче идти вперед. Не входите в шаблоны проектирования Java так рано, как в конечном итоге пытаетесь подогнать проблему к вашему шаблону, который не заканчивается хорошо. Пройдите примеры на веб-сайте разработчика Android, а затем напишите как можно больше кода.
Я просто собрал этот сайт под названием Android App Patterns - http://android-app-patterns.com, и он демонстрирует различные элементы пользовательского интерфейса и шаблоны взаимодействия, которые некоторые популярные приложения придерживаются на Android.
Существует несколько библиотек, которые помогут вам легко реализовать эти шаблоны. Например:
Ответ 4
Приложение для Android должно быть быстрым. Ну, наверное, более точно сказать, что он должен быть эффективным. То есть он должен работать как можно эффективнее в среде мобильных устройств, с его ограниченной вычислительной мощностью и хранением данных, меньшим экраном и ограниченным временем автономной работы.
В этом блоге я предлагаю лучшие практики, чтобы следовать за дизайном для производительности.
для более подробной информации
http://www.onsandroid.com/2014/10/android-application-designing-for.html
http://www.onsandroid.com/2013/01/android-best-practices.html