Подтвердить что ты не робот

Рекомендации по кодированию Android/дизайну

В недавнем вопросе я спросил, что меня направили на этот сайт: http://developer.android.com/design/index.html

Удивительный сайт, но он не ответил на один конкретный вопрос: каковы наилучшие практики/шаблоны проектирования, применяемые при разработке кода приложения?

Я искал MVC/MVP и т.д., и пока это дает результаты, это касается только фактической реализации указанных шаблонов, а не других доступных опций и т.д.

Я попытался декомпилировать и анализировать различные приложения Android, установленные по умолчанию, например Market, но я не смог найти структуру в коде Google. У кого-нибудь есть советы о том, как настроить Android-приложения таким образом, что они поддерживаются, расширяемы и т.д. Я знаю о широком значении этих слов и о том, что они чисто субъективны программисту в этом отношении, но я не могу выражайте это по-другому.

Одна из лучших практик, с которой я столкнулся, - это одно представление для каждой операции и большое количество действий в приложении для работы backstack, но, кроме этого, я не знаю, как на самом деле настроить сам Activity.

4b9b3361

Ответ 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