Содержание

Разработка мобильных приложений под Android (Андроид). Цена создания и разработки Android-приложений в evApps

Вы решили заказать свое первое приложение. Сразу возникает вопрос, что выбрать — iOS или Android.

Мы рекомендуем своим клиентам разработку приложений под Android в случаях, если:

Если бы на планете проживало всего 100 человек, 80 из них пользовалось бы Android-смартфонами, 16 — iOS, а остальные 4 — Windows и Blackberry. Если вы хотите охватить как можно большее количество пользователей, вам стоит обратить внимание на Android в первую очередь.

Android существенно обгоняет iOS во всех странах, где уровень доходов не очень высок. Россия здесь не исключение. По данным исследований, у Android в России в 2,5 раза больше пользователей, чем у Apple. В регионах страны этот разрыв выражен еще существеннее.

Открытый исходный код предоставляет множество возможностей для Android -разработчика. В зависимости от потребностей клиентов можно подстраивать функционал и изменять пользовательский интерфейс приложения с помощью различных стилей и тем.

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

Google предоставляет подробные инструкции для любого своего сервиса и продукта. У компании есть бесплатные тренинги и онлайн-курсы для разработчиков Android всех уровней. При желании вы можете изучить основы разработки под Android, чтобы потом общаться с разработчиками на их языке. Возможно, вы даже захотите попробовать себя в роли программиста и самостоятельно сделать простое приложение.

Приложения для iOS можно найти в App Store. Приложения для Android — не только в Google Play. Платформы Amazon App Store, Samsung Galaxy Apps и многие другие также предлагают Android-приложения. При необходимости вы можете изучить правила дистрибуции на разных площадках и охватить дополнительные рынки.

Если вы затрудняетесь с выбором платформы для будущего приложения, специалисты нашей компании помогут сделать правильный выбор. Мы оценим жизнеспособность идеи вашего приложения, проанализируем рынок, на котором вам придется конкурировать, и разработаем концепцию успешного продукта.

evapps.ru

30+ инструментов для профессиональной разработки приложений под Android / Habr

В этой статье я собираюсь поделиться некоторыми из лучших инструментов для повышения производительности разработки и создания лучших приложений под Android. Я лично использовал эти инструменты уже довольно давно и нашел их действительно полезными.

Эти инструменты помогли мне сэкономить много драгоценного времени из моей повседневной жизни, а также помогли мне создавать более качественные приложения. Поэтому, не теряя времени, давайте познакомимся с новыми и потрясающими инструментами для профессиональной разработки приложений под Android.

FlowUp


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

Stetho


Мощная платформа для отладки с открытым исходным кодом под Android, разработанная Facebook. Этот инструмент позволяет отлаживать собственные приложения под Android так же просто, как отладка веб-страниц с помощью инструментов разработчика Chrome и помогает выполнять различные действия, такие как проверка полной иерархии активностей, проверка базы данных SQLite, мониторинг сетевых операций и т. д.

JRebel for Android


Мы все очень разочаровываемся, глядя на экран, как дурак, и ожидаем, что сборка Gradle наконец закончится. Но этот потрясающий инструмент от JRebel приходит на помощь благодаря значительному ускоряет сборку и разработку приложений Android, и позволяет отлаживать почти в реальном времени.

Gradle Please


Если вы используете Gradle в качестве вашей системы сборки в Android Studio, то вы можете добавить любую внешнюю библиотеку в свой проект только одной строчкой кода.
Но как можно получить эту строчку легко и быстро? Этот сладкий маленький инструмент вам в этом поможет.

Android Asset Studio


Удивительная коллекцияпростых в использовании инструментов для создания различных типов значков (значков запуска, уведомления, общих, ярлыков приложений), которые вам понадобятся при разработке приложений под Android.

LeakCanary


LeakCanary — это мощный инструмент обнаружения утечки памяти, разработанный Square, что делает сложную и трудоемкую работу по обнаружению утечек памяти намного проще. После настройки он автоматически начнет присылать вам уведомления, когда утечка памяти произойдет в вашем приложении с полной трассировкой стека, чтобы помочь вам исправить ее.

DryRun


Действительно полезный и инновационный инструмент, который позволяет вам протестировать любую библиотеку Android, размещенную в интернете, всего за несколько секунд. Этот инструмент позволяет вам невероятно легко попробовать различные библиотеки практически без усилий.

Slides Code Highlighter


В качестве разработчиков мы довольно часто должны давать презентации, технические переговоры или просто демонстрировать причудливую часть фрагмента кода другому разработчику. И именно здесь этот полезный инструмент пригодится: он превращает ваши скучные куски кода в красиво выделенный и презентабельный фрагмент кода.

InstaBug


Я использую этот инструмент уже довольно давно, и я должен признать, что он значительно изменил способ предоставления пользовательских отзывов о приложении. Теперь они могут обмениваться снимками экрана, видео и аудиозаписями, подробными отчетами об ошибках и т. д., чтобы помочь мне легко идентифицировать и исправить ошибки.

Takt


Маленькая библиотека, которую вы можете использовать для проверки FPS вашего приложения во время его отладки. Всегда лучше ловить ошибки на этапе разработки, а также не позволять вашим пользователям пользоваться плохим приложением.

Android Debug Database


Удивительный инструмент, который полностью изменяет способ отладки баз данных и общих настроек в приложении под Android. Теперь вы можете просматривать все данные, редактировать их, удалять и запускать SQL-запросы в чистом и красивом пользовательском интерфейсе.

Source Tree


Чистый, простой и красивый инструмент, чтобы снова сделать Git великолепным. Вы можете визуализировать все свои изменения, коммиты, ветки красивым способом и никогда больше не писать одну команду в командной строке. Это также может быть очень полезно для всех новичков, которые, как правило, путаются.

GenyMotion


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

Vysor


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

Android Wifi ADB


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

FindBugs


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

Drawable Optimizer


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

Scalpel


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

BlockCanary


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

NimbleDroid


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

Methods Count


Кто не любит добавлять удивительные библиотеки в свой проект и увеличивать его функциональность? Но вы всегда должны думать о проблеме с ограничениями 65K. Этот замечательный инструмент может пригодиться, поскольку он может дать вам четкое представление о количестве методов, которые каждая библиотека добавляет в ваше приложение.

Android Tool for Mac


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

DevKnox


В наших приложениях скрыты некоторые недостатки безопасности, о которых мы, как правило, даже не знаем, и может потребоваться достаточно много опыта и усилий для понимания различных критических аспектов безопасности и создания пуленепробиваемых приложений. Но этот удивительный инструмент может помочь вам обнаружить недостатки безопасности так же просто, как использовать средство проверки орфографии в вашей среде IDE.

JSONSchema2POJO


Мы все сталкиваемся с этим несколько раз, когда у нас есть JSON, и мы хотим сделать из него эквивалентный POJO. Это довольно скучно и отнимает много времени, но именно здесь этот отличный инструмент может пригодиться. Все, что вам нужно сделать, это вставить JSON, и он автоматически сгенерирует все классы POJO.

ADB IDEA


Этот потрясающий плагин для Android Studio может многое сделать и поможет вам значительно ускорить повседневную разработку Android. Вы можете легко запускать, перезапускать, убивать, очищать данные, удалять свои приложения прямо из среды IDE, сохраняя много времени.

Key Promoter


Мы все знаем, насколько полезны быстрые сочетания клавиш, но есть так много сочетаний для стольких разных действий, что очень сложно запомнить их все. Этот удивительный плагин делает данный процесс намного легче и веселее.

Fabric


Вы, наверное, уже знаете, насколько мощной и удивительной является Fabric. Он предлагает набор инструментов, которые помогут вам быстрее создавать, развертывать и расширять приложения с минимальными усилиями. Попробуйте, если вы этого еще не сделали.

ClassyShark


С помощью ClassyShark вы можете проверить любой Android APK, чтобы получить из него много полезной информации, например, классы, ресурсы, манифест, зависимости и многое другое. Это может дать вам представление о том, что делают другие приложения, и, возможно, о том, как они это делают.

APK DeGuard


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

Codota


Довольно часто мы застреваем при разработке чего-то нового и должны проверять некоторые быстрые примеры кода из StackOverflow или Github. Но этот удивительный инструмент может позволить вам сделать это, даже не выходя из IDE.

Material Design Icon Generator


Этот плагин для Android Studio позволяет получить доступ ко всем значкам material design и настроить их прямо из самой IDE, что значительно сэкономит ваше время при разработке приложений.



Я уверен, что вы нашли много новых и захватывающих инструментов из этого списка и сразу начнете использовать некоторые из них, чтобы повысить производительность вашего развития.

habr.com

31 совет / Alconost corporate blog / Habr


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

Я не могу показать вам короткий путь к успеху, но если вы готовы приложить усилия – он ждёт вас.

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

Переведено в Alconost

1. Узнайте получше функционал фреймворков для разработки приложений под Android


И я не говорю о чтении документации, речь идет о фактическом коде фреймворка. Я знаю немало разработчиков, которые не потрудились «нырнуть» поглубже во внутренности фреймворков. Не будьте такими. Это невероятно, как много можно узнать, когда вы понимаете, как реально работают вещи, как складываются воедино детали мозаики.

Если вам нужно закончить вашу игру для Android, прекратите игнорировать функционал SDK, сделайте его своим помощником.  

2. Хватит бояться упустить что-то


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

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

3. Читайте как можно больше кода


Большинство разработчиков не утруждают себя изучением кода, написанного другими разработчиками. В итоге они просто тратят свое время на написание того, что они и так уже знают.

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

Совет: вот хороший ресурс, на котором можно найти лучшие приложения с открытым кодом, для начала.

4. Подумайте об изучении дополнительных языков


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

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

Совет: Здесь можно начать (если вдруг вы этого еще не знаете): JavaScript.

5. Пора изучить шаблоны проектирования Java


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

А еще вам нужно быть на одной волне с другими разработчиками: когда они будут обсуждать шаблоны Factory, Decorator или  Facade, вы будете понимать, о чем идет речь.

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

Совет: Вот хороший ресурс для освоения шаблонов проектирования Java. Если вы хотите еще больше информации, обязательно прочтите эту книгу.

6. Участвуйте в разработке проектов с открытым кодом


Если вы разработали библиотеку, плагин или другую полезную часть кода и используете ее в собственном приложении, подумайте о переходе на открытый исходный код. Участвуя в разработке совместного или собственного проекта с открытым исходным кодом, можно многому научиться. Считайте это экспресс-курсом open-source программирования, который значительно увеличит вашу стоимость как разработчика.
 
Если вам нечего переводить в открытый код, проверьте другие open-source проекты, которые вас заинтересуют. Исправьте ошибки, улучшите документацию, напишите несколько тестов для них.  

Даже самый небольшой вклад (такой, как исправление грамматических ошибок в документах) поможет лидеру проекта поддерживать его в рабочем состоянии.

7. Пусть ваша IDE работает на вас


Потратьте больше времени на то, чтобы понять интегрированную среду разработки (IDE), которую вы используете: Android Studio. Ее возможности шире, чем вы можете себе представить. Она предлагает крутой функционал, который многие разработчики не исследуют досконально.   

Возьмите себе за правило открывать новые и лучшие способы использования ваших инструментов. Это улучшит организацию рабочего процесса и повысит вашу продуктивность.

8. Пора структурировать приложение правильно


В основном весь наш написанный код целиком выгружается в Activities или Fragments (я тоже этим грешу), превращаясь постепенно во «всемогущий объект», который практически невозможно поддерживать и тестировать.

Важно подобрать правильный шаблон при проектировании архитектуры вашего приложения, например  MVP (Model-View-Presenter – Модель-Представление-Представитель) или MVVM (Model-View-ViewModel – Модель-Представление-Модель Представления). Разделите логику функционирования приложения, взаимодействие представлений, взаимодействие данных в различные слои, чтобы было проще управлять ими и тестировать их.

Совет: Обратите внимание на эти полезные макеты от Google: они упростят вашу жизнь при проектировании приложений.

9. Изучите стандарты чистого программирования под Android


Этот пункт тоже не стоит игнорировать, так как тяжело поддерживать стандартные принципы кодирования под Android, работая с программистами, которые не пишут чистый код.

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

Совет: Вот здесь можно начать изучение.

10. Изучите передовой опыт программирования под Android


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

Изучите, что стоит делать, а чего избегать, чтобы стать лучшим разработчиком и чтобы ваше приложение выделялось среди остальных.  

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

11. Используйте свободное время эффективно – слушайте подкасты


Попробуйте использовать ваше время с пользой. Когда вы едете в общественном транспорте, занимаетесь в тренажерном зале, управляете машиной, готовите, ваш гениальный мозг не очень-то и занят.

Добавляйте в свою жизнь многозадачность – слушайте подкасты по Android.

Совет: Начните с Fragmented Podcasts и Android Developers Backstage.

12. Не усложняйте. Будьте реалистами.


Это происходило не только со мной, но и с некоторыми моими друзьями-разработчиками. Конечно, будет правильно сначала подумать, перед тем как начать работу над чем-то (очень правильно, вообще-то).  Но не перемудрите, это приведет к путанице, пропущенным срокам и фрустрации.

Делайте то, что, по вашему мнению, необходимо для проекта прямо сейчас. Вы всегда сможете внести необходимые изменения впоследствии, если это потребуется.

13. Узнайте что-нибудь про дизайн


Я понимаю, что главное для программиста – научиться писать хороший код. Но если вы хотите стать полноценным разработчиком, стоит также уделять время изучению и пониманию пользовательского интерфейса (UI)  и пользовательского опыта (UX).

Эти знания изменят ваш взгляд на приложения, которые вы создаете. Старайтесь чаще общаться с UI и UX дизайнерами вашей команды, чтобы иметь лучшее представление о дизайне приложения.  

14. Станьте перфекционистом


«Идеал» – понятие субъективное, но возьмите за правило всегда стремиться к лучшей возможной версии продукта, над которым вы работаете.

Никогда не останавливайтесь на меньшем. Не делайте ничего «на отстань». Работайте с энтузиазмом, делайте больше чем можете. Благодаря такому подходу вы будете постоянно расти над собой и в конце концов станете успешным разработчиком.

15. Постоянство – ключ к успеху


Если вы хотите стать успешным в программировании (или в чем угодно еще в жизни), вам нужно быть последовательным.

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

Новое дело начинать легко, тяжело поддерживать интерес и энтузиазм к нему на протяжении длительного времени.

16. Начинайте с малого и постепенно расширяйтесь.


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

Не надо пугаться объемов или сложности проекта. Все проблемы можно решить, если вы идете правильным путем. Начинайте с малого, продвигайтесь понемногу, а затем постепенно расширяйтесь.

17. Всегда имейте под рукой площадку для проверки кода


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

Представьте, что вы случайно нашли интересную Android библиотеку. Вместо того, чтобы просто пробежаться по документам и API, протестируйте ее. Это даст вам возможность изучить указанную библиотеку лучше.

18. Пишите больше тестов


Это очень важно. Вы не можете считать, что работа над функционалом программы завершена, пока вы не подготовили исчерпывающий тест для нее. Тесты помогут вам обрести уверенность в отношении вашего кода.

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

19. Переходите на разработку через тестирование (TDD)


Разрабатывайте приложение сразу надежным и эффективным, способным выдержать проверку временем.

Следуйте принципу «красный/зеленый/рефакторинг» при разработке через тестирование (TDD). Сначала напишите тест, который не будет пройден (красный), потом напишите код, который пройдет тест (зеленый),  и в итоге исправляйте и оптимизируйте код (рефакторинг).

«Разработка через тестирование — это способ управлять собственным страхом при программировании. Страх делает вас нерешительным и менее коммуникабельным. Страх заставляет вас избегать обратной связи. Из-за страха вы становитесь угрюмым».  — TDD by Example

20. Настройте хороший механизм для автоматизации релиза


Как разработчик, старайтесь тратить как можно меньше времени на вещи, которые можно автоматизировать, такие как проверка качества приложения и релиз.

Автоматизировать проверку качества вашего кода можно при помощи таких инструментов, как CheckStyle, PMD, Lint и FindBugs. Прохождение всех модульных и инструментальных тестов является обязательным до интеграции любых существенных изменений в ваше приложение.

После того, как все проверки пройдены, вы можете публиковать ваш APK в Play Store или распространять его любым иным образом.

Совет: Изучите возможность автоматизировать публикацию приложения в Play Store посредством этого open-source инструментария.

21. Развивайте навык реактивного программирования


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

Используя данный подход, вы сможете разрабатывать интерактивные приложения быстрее, а это сделает вашу жизнь проще.  

Совет: Тут можно найти хороший материал по RxJava для Android.

22. Привыкайте использовать Kotlin для программирования под Android


С тех пор, как Google анонсировал анонсировал первоклассную поддержку для языка программирования Kotlin на конференции Google I/O 2017, интерес к нему резко возрос. Этот язык программирования — как глоток свежего воздуха в мире программирования под Android.  

Это шикарная новость для Android-разработчиков, которым надоело программировать на старых, перегруженных и полных ошибок Java-приложениях. Дайте ему шанс, возможно, именно Kotlin вдохновит вас на новые свершения.  

Совет: Оцените это шикарное руководство по Kotlin.

23. Посещайте митапы, больше общайтесь с другими разработчиками


Мы, разработчики, обычно интроверты. Любим сидеть тихонечко в уголке со своим компьютером, погруженные в собственный мир.

Выходите из своей зоны комфорта и общайтесь с другими программистами. Многому можно научиться во время митапов по разработке, на вечеринках или просто общаясь с людьми со схожими интересами.

Совет: Зайдите на meetup.com, чтобы найти интересные вам митапы.

24. Изучите «горячие клавиши»


Практически для любой операции, которую вы хотели бы выполнить в Android Studio, есть «горячие клавиши». Если вы выучите их, это существенно сократит временные затраты на разработку и повысит вашу продуктивность. Вам потребуется какое-то время, чтобы запомнить сочетания клавиш, но в отдаленной перспективе это позволит перейти на работу без мышки.

Совет:  Если вы не хотите запоминать «горячие клавиши» по старинке, тут можно найти замечательный плагин, который поможет вам в этом.

25. Старайтесь узнавать как минимум одну новую вещь об Android каждую неделю


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

Составьте перечень вещей, которые вы еще не знаете, распределите приоритеты и начинайте прорабатывать каждый пункт. Через пару месяцев вы оглянетесь и удивитесь, насколько далеко вы продвинулись.  

26. Автоматизируйте все, что «съедает» ваше время


Мы, инженеры, ленивы от рождения, мы всегда пытаемся найти легкий способ выполнить скучную работу.

Так что если вы вынуждены по несколько раз за день выполнять повторяющуюся и неинтересную работу – автоматизируйте ее. Это сохранит много времени, которое можно посвятить более полезным делам.

Совет: Обратите внимание на Zapier качественный сервис, который позволит вам объединить и автоматизировать некоторые ваши инструменты, которые вы используете ежедневно.

27. Запускайте две версии Android Studio одновременно


Наиболее важные ежедневные операции совершайте в стабильной версии Android Studio. Но не стоит упускать возможности самых свежих бета-версий Android Studio.

Иногда в этих последних версиях есть новые интересные возможности, которые вы не захотите упустить.  

28. Периодически пересматривайте чужие библиотеки


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

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

29. Найдите лучшие способы рефакторинга старых кодовых баз.


Не делайте ошибки и не занимайтесь рефакторингом всех предыдущих версий кодовых баз одновременно. Таким образом вы загоните себя в ловушку, из которой не сможете выбраться.
Вместо этого осуществляйте рефакторинг тех частей кодовой базы, которые вам нужны для работы прямо сейчас, а потом постепенно расширяйте его на остальные части, когда это станет необходимо. И еще пишите тесты для экранов, которые вы хотите подвергнуть рефакторингу, до того как трогать код, который по вашему мнению может нарушить существующую функциональность.

Совет: Эта книга полностью изменила мой взгляд на работу с  унаследованным кодом. Однозначно прочтите ее.

30. Всегда тестируйте приложения на устройствах с низкой производительностью


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

Приобретите самые дешевые и низкопроизводительные девайсы, которые вы только сможете найти, и заведите привычку разрабатывать приложения только для них. Вы начнете замечать множество недостатков вашего приложения, о которых раньше и не догадывались. Так вы сможете подготовить ваши приложения для большей части населения Земли, которым недоступны лучшие Android-устройства.

31. Купите самый лучший компьютер, какой вы только можете себе позволить


Не делайте ошибки, приобретая дешевый ноутбук, это будет уничтожать ваш опыт разработки ежедневно (прим. редактора: мы как раз перевели статью о том, как выбрать лэптоп для программирования).

Отдайте предпочтение Mac, а не Windows. Вы просто влюбитесь в его простоту и надежность.

Если вы приобретаете MacBook, выберите вариант с самыми лучшими характеристиками. Потом вы будете бесконечно благодарны себе за это решение.

Поделитесь своими советами


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

О переводчике

Перевод статьи выполнен в Alconost.

Alconost занимается локализацией приложений, игр и сайтов на 68 языков. Переводчики-носители языка, лингвистическое тестирование, облачная платформа с API, непрерывная локализация, менеджеры проектов 24/7, любые форматы строковых ресурсов, перевод технических текстов.

Мы также делаем рекламные и обучающие видеоролики — для сайтов, продающие, имиджевые, рекламные, обучающие, тизеры, эксплейнеры, трейлеры для Google Play и App Store.

Подробнее: https://alconost.com

habr.com

За и против мобильной разработки под Android

Недостатки мобильной разработки для Android

  1. Много устройств. Выше мы сказали, что доступность — это плюс. Но обратная сторона медали — необходимость поддерживать приложение для каждой модели смартфонов разных производителей с этой системой внутри. На не очень качественных китайских телефонах приложение может «крашиться» не по вине разработчика, а из-за аппаратных проблем.
  2. Огромное число экранов. Пункт плавно вытекает из предыдущего — большое разнообразие экранов создает дополнительные сложности при разработке. Чтобы решить проблему разного соотношения сторон, нельзя просто взять и растянуть интерфейс приложения. Приходится поддерживать несколько типов экранов и фактически разрабатывать копии.
  3. Несколько версий операционной системы. iOS обновляется ежегодно, и старые версии не получают поддержки — актуальны только последняя и предпоследняя. С Android дела обстоят иначе. Google не может обновлять систему на всех устройствах — это делают вендоры. В итоге актуальны оказываются сразу несколько версий Android. Не все производители быстро обновляют свои устройства, а кто-то не делает этого вообще.
Распределение версий на устройствах. Источник

Все это затрудняет работу специалистам. Если вы договариваетесь с заказчиками приложения, что будете поддерживать только 90% версий, — это уже отлично. Но некоторые требуют поддержку и всех 100%. И это боль разработчика: с каждым обновлением появляются новые API, которые он хочет использовать, но их нет на старых версиях ОС. Эту проблему частично решает библиотека совместимости.

Google на сегодняшний день — монополист, который задаёт тренды в развитии IT. Раньше к «корпорации добра» относились почти с трепетом, сегодня же у разработчиков копятся претензии, а до техподдержки зачастую невозможно достучаться.

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

Сообщение, которое мобильный разработчик не желал бы видеть и в страшном сне

skillbox.ru

Несколько книг для начинающего и продолжающего разработчика под Android / Habr

В прошлом году я входил в миры Android. Помимо изучения исходников, документации, статей, блогов, аудио- и видео-материалов по теме, читал книги. Спешу поделиться читательским опытом.

Под катом небольшой обзор восьми книг. Темы следующие:


  1. RxJava
  2. Потоки в Android
  3. Разработка под Android на Java
  4. Kotlin. Обзор языка
  5. Kotlin. Практика
  6. Kotlin. Обзор языка с уклоном на Android
  7. Разработка под Android на Kotlin
  8. Rx в Kotlin


Reactive Programming with RxJava: Creating Asynchronous, Event-Based Applications. By Tomasz Nurkiewicz,‎ Ben Christensen. O’Reilly Media; 1 edition October 27, 2016; 372 pages;
ISBN-13: 978-1491931653

Книга, которая на примере RxJava поможет понять вам, что такое реактивное программирование. Она требует от вас неплохое знание Java (по крайней мере, вы должны понимать, что такое обобщенные типы и лямбда-выражения) и предполагает последовательное чтение, т.к. материал подается шаг за шагом. Мне кажется, в этой связности и последовательности подачи материала — основная прелесть книги. Внимательный читатель получит полное представление о RxJava. В этом главный профит издания.

Но, даже если уверены в своих знаниях Rx, книга наверняка откроет вам что-то новое. Тем более, если вы только начинаете изучать тему. Если это так, то можно дать вам еще один совет: закрепляйте на практике пройденные темы и изучайте open-source проекты. Так вы быстрее освоите Rx.

Недостатком книги можно считать тот факт, что она имеет в виду версию RxJava 1.1.6. Во второй версии RxJava претерпела некоторые существенные изменения (см. статьи на Хабре Исследуем RxJava 2 для Android и ReactiveX 2.0 с примерами, а также полный список изменений на wiki проекта What’s different in 2.0), и поэтому некоторые места в книге устарели. Однако эти изменения вытекали из общей логики развития RxJava и в книге о них идет речь. Думаю, второе издание должно поставить все на свои места, хотя к этому моменту, возможно, появиться RxJava 3.

Еще один небольшой недостаток, на мой взгляд: книга недостаточно развернуто объясняет теорию реактивного программирования и начинающему разработчику может быть нелегко войти в тему. Хорошее место для этой цели первая глава, но она (с учетом отличий от RxJava 2) выглядит запутанной.

Непосредственно работе RxJava в Android посвящена восьмая глава. Много прекрасно разобранных практических примеров. Но опять же, на сегодня охват возможностей Rx в Android неполон.

В целом, ни один из недостатков не перечеркивает достоинств книги. Она может быть рекомендована к чтению как начинающими разработчиками, так и опытными девелоперами.

Кроме прочего, всегда интересно посмотреть, каких на этот раз животных поместило на обложку издательство O’Reilly.

Есть перевод на русский:

Нуркевич Т., Кристенсен Б. Реактивное программирование с применением RxJava. Разработка асинхронных событийно-ориентированных приложений. ДМК Пресс, 2017 год, 358 стр.
ISBN: 978-5-97060-496-0


обложка перевода



Efficient Android Threading: Asynchronous Processing Techniques for Android Applications. By Anders Goransson. O’Reilly Media; 1 edition June 13, 2014; 280 pages;
ISBN-13: 978-1449364137
Книга делится на две части. В первой вы узнаете, что находится под капотом операционной системы (ОС) Android: из каких компонентов состоит ОС, как организовано взаимодействие между потоками и между процессами, и как Android организует управление памятью. Во второй части вы научитесь управлять потоками и процессами, узнаете различные механизмы для этого, познакомитесь подробней Service и фреймворком Loader.

Из минусов, на мой взгляд, можно назвать то, что в книге не слишком подробно объясняется взаимодействие между процессами (фрейворк Binder, AIDL), как с теоретической, так и с практической стороны. И, поскольку, книга написана до второй половины 2014 года, мы не найдем в ней то, что появилось с момента выхода Android Lollipop 5.0. Например, можно вспомнить планирование задач с использованием JobScheduler, Doze Mode, ограничения на запуск Service, которые мы получили в Android Oreo 8.0… etc.

То, что есть недостатки, можно отнести скорее к лаконичному стилю изложения (книга < 300 страниц) и ко времени написания. Но не смотря на них, книга must have для погружения в устройство OC Android. Знания, которые может дать книга, нужны любому серьезному разработчику под Android. Здесь они собраны воедино. И если вам не очень понятен доклад о AIDL и Binder, который вы услышали на очередной Android-конференции, то книга поможет вам в этом.

Есть перевод на русский:

Ёранссон А. Эффективное использование потоков в операционной системе Android / пер. с англ. А.В.Снастина. — М.: ДМК Пресс, 2015 год, 304 стр.
ISBN: 978-5-97060-168-6


обложка перевода



Android Programming: The Big Nerd Ranch Guide. By Bill Phillips, Chris Stewart & Kristin Marsicano. Big Nerd Ranch Guides; 3 edition February 9, 2017; 624 pages;
ISBN-13: 978-0134706054
Действительно неплохая книга, которую можно смело рекомендовать начинающим разработчикам или преподавателям, для составления программы обучения Android-разработке. Если вы начинающий разработчик, то в книге вы найдете множество приемов и примеров для программирования Android-приложений, к которым вы бы могли идти самостоятельно довольно долго. Книга начинает с «Hello world» и через теорию, упражнения и написание небольших приложений, обучает основному стеку технологий для создания Android-приложения. Требует среднего знания Java.

Из минусов я бы назвал неравномерную сложность, довольно большой объем. Думаю, если вы начнете проходить книгу от корки до корки, то для этого вам понадобится много терпения. Не факт, что такой способ не замедлит ваше развитие, как разработчика. Я бы рекомендовал использовать этот фолиант скорее как справочник по интересующей вас теме (теорию быстрее узнать, например, на каком-либо онлайн-курсе), а для скорейшего вхождения в тему Android-разработки — писать свои проекты и изучать, как пишут код другие разработчики.

Есть перевод на русский:

Филлипс Б., Стюарт К., Марсикано К.Android. Программирование для профессионалов. 3-е издание / пер. с англ. — СПб.: Издательский дом «Питер», 2017 год, 688 стр.
ISBN: 978-5-4461-0413-0

На Хабре есть заметка от издательства о книге.


обложка перевода



Kotlin in Action. By Dmitry Jemerov & Svetlana Isakova. Manning Publications; 1 edition February 19, 2017; 360 pages;
ISBN-13: 978-1617293290
«Kotlin в действии» — книга от создателей языка. Книга очень хорошо написана. Я имею в виду структуру материала, стиль повествования и оформление текста. Сложилось впечатление, что авторы взяли все лучшее из книг о языках программирования и воплотили это в своей работе. Главная их заслуга в том, что они сумели отойти от формализма документации и смогли показать особенности языка и историю его развития так, что мы получили своего рода «рассказ», связанное повествование, за развитием «сюжета» которого следишь с интересом.

Книга удачно разделена на главы, параграфы и разделы. Материал организован от простого к сложному. Книга предполагает, что читатель знает Java на достаточном уровне, поскольку язык Kotlin во многом опирается на Java. Если вы Android-разработчик, который пишет, или которому предстоит писать на Kotlin, тогда эта книга для вас. Но если вы начинающий девелопер и недостаточно сильны в Java, вы также можете читать эту книгу. Вам просто придется чуть больше поработать над ней. Даже теория (например, теория лямбда-выражений или обобщенных типов) объяснена в книге очень хорошо. И это здорово поможет войти в тему, если вы делаете первые шаги в программировании.

Книга имеет в виду Kotlin 1.0, поэтому, например, в ней отсутствует описание корутин (coroutine).

Книга не привязана к конкретной предметной области (например, Kotlin в Android), и может использоваться как отличное введение для всех, кто изучает Kotlin.

Есть перевод на русский:

Исакова С., Жемеров Д. Kotlin в действии / пер. с англ. Киселев А.Н. — М.: ДМК-Пресс, октябрь 2017 г., 402 стр.
ISBN: 978-5-97060-497-7

На Хабре есть заметка от автора о книге.


обложка перевода



Kotlin for Android Developers: Learn Kotlin the easy way while developing an Android App By Antonio Leiva. CreateSpace Independent Publishing Platform; 1 edition March 21, 2016; 212 pages;
ISBN-13: 978-1530075614
Это была первая книга, которая вышла о языке Kotlin. По сравнению с книгой «Kotlin in action» она проигрывает как введение в язык, но вместе с тем может служить примером использования языка в Android. В книге разрабатываются приложения, исходники которых лежат на GitHub.

Минусы: материал в книге довольно запутан, автор часто ссылается на репозиторий в GitHub, но при этом не всегда можно понять какую ветку он имеет в виду. Впечатление, что написанное в книге, лучше подходит для формата блога или серии статей о разработке приложения на Kotlin.

В книге можно найти пару-тройку интересных приемов программирования на Kotlin под Android.



Android Development with Kotlin By Marcin Moskala & Igor Wojda. Packt Publishing — ebooks Account, September 6, 2017; 440 pages;
ISBN-13: 978-1787123687
Книга по-сути является рассказом о языке Kotlin. Хотя и всегда имеет в виду разработку под Android. Но непосредственно создание небольшого приложения, происходит только в последней главе. Мне представляется, что в плане введения в язык эта книга проигрывает книге «Kotlin in action».

Главный минус, что эта книга никак не является введением в Android-разработку на Kotlin, так что название может путать читателя. Англоязычные читатели жалуются на плохой английский, но я не заметил, конечно.

Саму книгу не дочитал (книги «Kotlin in action» вполне хватает для введения в язык), поэтому не могу судить о ней с полной уверенностью.

В электронной версии книгу очень удобно читать на сайте издательства с помощью специальной читалки Mapt.

У одного из авторов есть занятные статьи: например, о кроссплатформенности на Kotlin.



Mastering Android Development with Kotlin: Deep dive into the world of Android to create robust applications with Kotlin By Milos Vasic. Packt Publishing — ebooks Account, November 8, 2017; 378 pages;
ISBN-13: 978-1788473699
Эту книгу можно считать полноценным введением в разработку под Android. Она начинает с установки Android Studio, проходит по многим аспектам Android, и заканчивает объяснением публикации приложения на Google Play. В этом смысле книга — некий аналог книге «Android Programming: The Big Nerd Ranch Guide», только на Kotlin. Поэтому книга может быть рекомендована начинающим разработчикам, которые решили освоить разработку под Android через Kotlin. Книга предполагает базовое знакомство с Kotlin.

Мне кажется, что книга не слишком глубоко говорит о разработке на Android, но объясняет нужные вещи. Например, работу с Git или использование библиотеки Retrofit. Что касается использования языка Kotlin для обучения разработке под Android, то сам автор предупреждает, что Kotlin лишь дополнительный инструмент для Android, и Java, как и С++ (для Native), еще никто не отменял.

Как я уже говорил, электронные книги данного издательства удобно читать, благодаря встроенной читалке Mapt.



Reactive Programming in Kotlin: Design and build non-blocking, asynchronous Kotlin applications with RXKotlin, Reactor-Kotlin, Android, and Spring By Rivu Chakraborty. Packt Publishing — ebooks Account, December 5, 2017; 322 pages;
ISBN-13: 978-1788473026
Эта книга появилась недавно, так что я не успел достаточно хорошо с ней познакомиться. Но, что сразу бросается в глаза — она начинается с пространного введения, объясняющего концепцию реактивного программирования, и, затем, плавно переходит на Rx (в данном случае, RxKotlin). Книга имеет в виду вторую версию Rx, что выгодно отличает ее (как и более полное введение) от первой книги («Reactive Programming with RxJava») в этом обзоре. Хотя само объяснение сущностей Rx, операторов, концепции backpressure и т.д. дается в гораздо более лаконичной форме. Этот факт, не позволяет считать данную книгу полноценной заменой первой.

Об RxKotlin в Android идет речь в последней главе. Читатель знакомится с возможностями RxKotlin в Android на примере небольшого приложения, в котором, кроме прочего, используется Retrofit вместе с адаптером от Джейка Вортона.

Книга хорошо оформлена и разбита на главы и разделы, читается быстро. Может быть рекомендована, в дополнение к первой книге об Rx в этом обзоре, особенно для девелоперов изучающих Kotlin. Предполагает знакомство с Kotlin на базовом уровне.

Остальные книги о Kotlin см. на этой странице оф. сайта языка и на сайте издательства Packt Publishing.

habr.com

Программирование под Android: 50 лучших инструментов

Знание Java и IDE – далеко не все, чтобы сделать программирование под Android комфортным. Рассмотрим полезные дополнения и рекомендации.

Предыдущая статья Разработка под Андроид: советы, инструменты и трюки.

Используйте альтернативный HTTP-клиент OkHttp.

HttpUrlConnect страдает от некоторых багов. Okhttp решает эти проблемы. Анонс.

На локальные файлы aar можно ссылаться, как показано ниже:
dependencies {
     compile(name:'nameOfYourAARFileWithoutExtension', ext:'aar')
   }
  repositories{
        flatDir{
                dirs 'libs'
         }
   }

Подробнее.

Для удобной работы с логами можно использовать Pidcat
Делайте коммиты с помощью систем контроля версий (VCS) вроде Git
Программа ClassyShark

Это возможность проверить Android APK и получить необходимую информацию о методах, полях, зависимостях etc. Анализирует файлы aar, class, jar, so, apk.

Библиотека Stetho

Использование библиотеки позволяет дебажить программы с помощью Chrome Dev Tools. Включает такие инструменты, как Network Monitor, SharedPreference и т. д.

Приложение Battery Historian

Анализирует состояние батареи.

Используйте константы при работе с зависимостями (например, «1.2.0»)

Избегайте знака + при указании версий зависимостей.

  • Так можно избежать ошибок, несмотря на изменение API.
  • Устраняется необходимость всякий раз во время сборки осуществлять онлайн-проверку последних версий для каждой зависимости.
Отложите TimerTask и используйте Handler
Для публикации приложений (например, на GitHub) не стоит использовать основную электронную почту
Векторы вместо PNG

Если же это PNG, постарайтесь сжать файлы, используя TinyPNG.

Качественное программирование под Android подразумевает использование proguard
android {
  ...
  buildTypes {
      release {
          minifyEnabled true
          proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
      }
  }
}
Используйте shrinkResources
android {
  ...
  buildTypes {
      release {
          shrinkResources true
          minifyEnabled true
          ...
      }
  }
}
Следуйте приведенному ниже правилу для ускорения сборки gradle:
Gradle memory >= Dex memory + 1Gb
Разделите свой apk, используя gradle и нативный код

Не объединяйте все вместе, потому что потом придется долго разбираться в исходниках.

defaultConfig {
    ...

    ndk {
      abiFilters "armeabi", "armeabi-v7a", "mips", "x86"
    }
  }

// Разделение
splits {
  abi {
    enable true
    reset()
    include 'armeabi', 'armeabi-v7a', 'mips', 'x86' //select ABIs to build APKs for
    universalApk false //generate an additional APK that contains all the ABIs
  }
}

// Карта
project.ext.versionCodes = ['armeabi': 1, 'armeabi-v7a': 2, 'mips': 5, 'x86': 8]

// Переименовать
android.applicationVariants.all { variant ->
  // Назначить другой код версии для каждого вывода
  variant.outputs.each { output ->
    output.versionCodeOverride =
        project.ext.versionCodes.get(output.getFilter(com.android.build.OutputFile.ABI), 0) *
            1000000 +
            android.defaultConfig.versionCode
  }
}
Узнайте больше об архитектурах MVP и Clean
Попытайтесь понять и использовать TDD (Test Driven Development)
Для принудительной повторной загрузки зависимостей:
./gradlew --refresh-dependencies
Исключение выполнения определенной задачи из gradle

Предположим, необходимо убрать задачу javaDoc. Просто используйте в команде -x, а затем имя задачи. В нашем случае это javaDoc:

./gradlew clean build -x javaDoc
Чтобы каждое имя подпроекта совпадало с именем проекта

Добавьте эту строку в settings.gradle:

rootProject.children.each{
  it.buildFileName = it.name + '.gradle'
}

Больше трюков с gradle вы найдете здесь.

Следуйте принципу Do not Repeat Yourself (DRY)
Пакеты по функциям, а не по слоям
Изучите механизм Dependency Resolution

Со скоростью обновления Android-зависимостей рано или поздно вы столкнетесь с конфликтом зависимостей в приложении. Для этого используется Dependency Resolution. Официальный ресурс.

Используйте разные имена пакетов в случае дебаг-сборок:
android {
    buildTypes {
        debug {
            applicationIdSuffix '.debug'
            versionNameSuffix '-DEBUG'
        }

        release {
            // ...
        }
    }
}
Нужно уметь найти и остановить утечку памяти в Android-приложении
Если вы создаете градиент в xml с полностью прозрачной частью, будьте очень осторожны в использовании @android:color/transparent
Следуйте стандартным правилам в отношении имен для ваших ресурсов
Используйте специальные задачи gradle в ваших файлах build.gradle

Android использует Gradle в качестве системы сборки, что на самом деле упрощает реализацию многих вещей, автоматизируя процесс. Этот пост на reddit содержит много полезных gradle-скриптов.

Используйте подходящий .gitignore в проектах Android.

Пример.

Используйте LeakCanary для обнаружения утечек памяти в приложении

Программирование под Android предусматривает использование таких библиотек, как эта. Именно они упрощают кодинг и делают приложение «шустрее».

Ускорьте сборку gradle в Android Studio 2.3+
  • Перейдите к версии 3.4.1.
  • Выполните команду в директории проекта, чтобы проапдейтить gradle wrapper:
./gradlew wrapper --gradle-version 3.4.1 --distribution-type all
  • Установите необходимые свойства в глобальном файле gradle.properties:
android.enableBuildCache=true
Остановите сборку посредством gradle:
./gradlew -stop
Настройте gradle для загрузки отсутствующих элементов android sdk в автоматическом режиме
  • Установите необходимые свойства в глобальном файле gradle.properties:
android.builder.sdkDownload=true

Это экспериментальный вариант, и он загружает только инструменты и платформы для сборки, но фактически не обновляет репозитории Google или Support.

Не подключайте jcenter() и mavenCentral() вместе в файле build.gradle

MavenCentral и так входит в JCenter.

Очистите кэш gradle, если считаете, что библиотеки support и google play services несовместимы в android sdk
  • Перейдите в ~/.gradle/caches/ и удалите оттуда все.
  • Откройте SDK Manager и выполните повторную синхронизацию всех файлов поддержки и служб Google Play.
  • Затем повторная синхронизация вашего проекта (обновление зависимостей).
  • Теперь все должно работать правильно.
Настройте удобные алиасы adb для терминала

Добавьте указанные ниже алиасы в файл ~/.bashrc или  ~/.zshrc, сохраните и перезапустите терминал. После сохранения используйте их как показано в столбце «Применить»:

Настройте Android Studio на сбой сборки, если код содержит //STOPSHIP.

Чтобы добавить проверку на //STOPSHIP в lint, включите в build.gradle следующий код:

android {
...
    lintOptions {
        abortOnError true
        fatal 'StopShip'
    }
}

Если в коде есть комментарий //STOPSHIP, это вызовет ошибку при создании apk-версии.

Вы можете включить подсветку //STOPSHIP в Android Studio (по умолчанию подсветка выключена). Это делается через Preferences → Editor → Code Style → Inspections. Найдите STOPSHIP, чтобы применить настройку.

Используйте alfi, чтобы найти оператор зависимостей gradle для библиотеки

Это консольная версия web-приложения Gradle, Please.

alfi name_of_library
  • Копирование нужной библиотеки.
  • Вставка в build.gradle.
Вывод результатов юнит-тестов в консоль
android {
    ...
    testOptions.unitTests.all {
      testLogging {
        events 'passed', 'skipped', 'failed', 'standardOut', 'standardError'
        outputs.upToDateWhen { false }
        showStandardStreams = true
      }
    }
  }
Сделайте сборку быстрее, используя офлайн режим

Программирование под Android нуждается в:

  • Быстрой сборке:
./gradlew assembleDevelopDebug --offline
  • Быстрых юнит-тестах:
./gradlew test --offline
Использовать абсрактный класс Logger
Если нужно инициализировать свою библиотеку автоматически, обратите внимание на Content Provider
Уменьшите размера установленного приложения с помощью «android:extractNativeLibs:false» в

Подробнее.

Селективная сборка для конкретного метода в Android Studio

Используйте возможности Java 8, добавив sourceCompatibility & targetCompatibility в файл build.gradle:
android {
  ...
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}
Задайте gradle-задачу для архивирования файлов apk и proguard при сборке с целью резервного копирования:
task deployApks(type:Copy) {
    description = "Copies APKs and Proguard mappings to the deploy directory"
    def appName = "";
    def versionDir = android.defaultConfig.versionName+"_"+android.defaultConfig.versionCode;

    println("Copies APK and Proguard to " + versionDir)

    from 'build/outputs/mapping/release/'
    include '**/mapping.txt'
    into '../.admin/deploy/' + versionDir
    rename ('mapping.txt', "${versionDir}-mapping.txt")

    from ('.') {
        exclude '**/build', '**/src'
    }

    include '*.apk'
    into '../.admin/deploy/' + versionDir
    rename ('app-release.apk', "${appName}-${versionDir}.apk")
}

Движение

Программирование под Android включает много составляющих. Например, в Material Design в качестве базиса используется физика реального мира. В реальности объекты не двигаются линейно. Это движение по искривленным дорожкам, с ускорением и замедлением в соответствии со свойствами движения.

Таким образом, движение должно также использовать данные свойства и анимировать объекты с сохранением естественности.

Например, автомобиль, покидающий экран, начинает движение медленно, а затем ускоряется, пока полностью не выйдет из кадра. Точно так же представления должны быть интерполированы с использованием классов AccelerateInterpolator, FastOutSlowInInterpolator, etc. Подробнее.

Оформление

Хотя пользовательские шрифты и могут использоваться для брендинга, лучше придерживаться стандартных Noto и Roboto из-за их узнаваемости. Особенно это касается основного текста.

Roboto охватывает латинские, греческие и кириллические символы, а Noto подходит для других языков.

Балансировка – важный аспект оформления, фундаментальная концепция которого заключается в том, что чем больше шрифт, тем менее жирным он должен быть.

Текст должен выравниваться по сетке с ячейками 4dp.

Лучшая длина текста для больших текстовых блоков составляет 40-60 символов в одной строке. Другие варианты вносят дисбаланс.

Иконки

Необходимый размер для иконок – 48dp с краями 1dp:

  • 48px x 48px – mdpi
  • 72px x 72px – hdpi
  • 96px x 96px – xhdpi
  • 144px x 144px – xxhdpi
  • 192px x 192px – xxxhdpi

Дополнительная иконка 512px x 512px должна быть для Google Play. Значки материалов должны содержать следующие важные элементы:

  • 1dp тонированный край наверху
  • 1dp затененный край внизу
  • мягкая тень вокруг всех краев поднятых элементов
  • мягкий оттенок для обеспечения поверхностного свечения

Подробнее.

Ripple

Для Ripple эффекта вместо ?android:attr используется ?attr/selectableItemBackground.

Для кнопки реализация должна включать:

android:background="?attr/selectableItemBackground"

Выходящий за края Ripple реализуется с помощью:

?attr/selectableItemBackgroundBorderless

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

proglib.io

12 лучших фреймворков для разработки приложений под Android / Habr

Android – прекрасная платформа для мобильных устройств, она работает на миллионах смартфонов в 200 странах по всему миру. В этом посте я собрал несколько популярных фреймворков для разработки приложений под Android, из числа популярных среди разработчиков.

Смысл фреймворка – увеличить производительность, уменьшив затраты усилий на разработку. В идеале они экономят разработчикам время на то, чтобы заняться реально важными при разработке приложения вопросами.

1) Corona SDK

Богатый инструментарий для создания игр и приложений за рекордно короткое время

Обеспечивает возможность очень быстрой разработки. Элегантный API упрощает добавление сложных функций, технологический процесс позволяет сразу же видеть внесённые изменения, сама же разработка идёт на Lua – простом для изучения языке. Всё это приводит к рекордной скорости разработки.

Самый популярный фреймворк, часто используется разработчиками игр, но подходит для любого рода приложений. Уже более миллиона разработчиков пользуются API, поддержкой нативного интерфейса, встроенным движком и рекламной платформой.

2) Phonegap

Простое создание приложений при помощи веб-технологий.

Использует HTML5, CSS и JavaScript. Спонсируется Apache и Adobe. Версия 2.0 предлагает поддержку Windows phone, новых библиотек и функций CLI. Для вставки кода в крупные приложения используется инструмент Cordova WebView

3) Xamarin

Для этого фреймворка код можно писать на С#. Также он работает в iOS и Windows. Поддерживается тестирование приложения в облаке.

4) Sencha Touch 2

Идеальная платформа для разработки и управления безопасными бизнес-приложениями, работающими на разных устройствах. Разработка ведётся на JavaScript и HTML5. Встроенная система MVC, 50 различных встроенных компонентов, система управления разработкой. Имеется бесплатная функция публикации приложения в Google Play.

5) Appcelerator

Разработчики утверждают, что в мире работают два миллиарда приложений, созданных на этом фреймворке. Частью фреймворка является Titanium SDK, который поддерживает разработку на языке JavaScript

6) Basic4Android

RAD (быстрая разработка приложений) и наличие своего IDE. Разработка ведётся на простом языке программирования, напоминающем Visual Basic.

7) JQuery Mobile

JQuery, заточенный под работу с сенсорными экранами. Помогает разработчикам строить сайты с отзывчивым дизайном и приложения, работающие как на десктопах, так и на планшетах и смартфонах.

8) Dojo Mobile

Фреймворк для создания приложений на базе HTML5 + JavaScript, помогающий реализовать быструю разработку мобильных приложений для Android и iOS. Присутствует набор форм, MVC, и симпатичные темы приложений.

9) Sproutcore

MVC-дизайн, оптимизация быстродействия и забота о расширяемости приложений.

10) Theappbuilder

Основан на HTML5. Предлагает простой drag and drop интерфейс без написания кода, что позволяет очень быстро разрабатывать приложения. Особое внимание уделяется интеграцией с соцсетями и прямая отправка приложений в Google Play.

11) DHTMLX Touch

Библиотека на основе AJAX и JavaScript, предназначенная для создания виджетов и приложений на основе HTML5.

12) Mo Sync SDK

Поддержка HTML5, JavaScript, C++ и 9-и различных платформ. Также возможно сопряжение с PhoneGap. Для отладки предлагается эмулятор под названием MoSync Reload.

habr.com