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

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

С НУЛЯ

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

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

БЕССОННАЯ НОЧЬ

Позже наш отдел сформировал группу студентов, которые будут соревноваться и разрабатывать приложение для филиппинской комиссии по делам женщин (Великая хартия вольностей женщин), и, к счастью, я был частью этой группы, представляющей наш отдел. Там все началось. Как я уже сказал, разработка приложения действительно сложна, что еще в сжатые сроки? Мы разрабатывали приложение меньше месяца. У всех нас нет прочного фундамента в мобильной разработке. В то время мы все были новичками, и к тому же мы чувствовали давление, зная, что студенты известных колледжей и университетов являются нашими конкурентами.

Я отвечаю за дизайн пользовательского интерфейса и другие функции приложения. По мере того, как день приближается к крайнему сроку, мы становимся все более и более напряженными. Каждый день в нашем мозгу не умирает ни один нейрон. Мы разрабатывали почти круглосуточно и без выходных, и я до сих пор помню, как однажды я не спал почти 34 часа. Мозговой штурм, инженерное дело, кофе и энергетические напитки — наши замечательные компаньоны. Этот опыт помог мне улучшить логическое мышление и навыки программирования… Немного. 😀

Я многому научился за последние 3 года, разрабатывая приложение для платформы iOS и Android. Я изучил различные техники, подходы к программированию и, самое главное, я узнал, что нужно делать, а чего НЕ ДЕЛАТЬ.

Итак, я поделюсь некоторыми советами, которые я извлек из своего 3-летнего опыта работы с мобильной платформой.

ПЕРВОЕ: ЧИТАТЬ, ЧИТАТЬ, ЧИТАТЬ

Чем больше вы читаете, тем больше вещей вы узнаете.

По сути, чтение — это ключ к обучению.

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

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

Для новичков я бы посоветовал посетить AndroidHive, это также один из моих любимых обучающих сайтов в то время. Вы можете изучить разработку Android с основ, чтобы продвинуться дальше, используя учебные пособия Рави Тамады — владельца AndroidHive. Я до сих пор помню то время, когда я был только новичком в Android-разработке, у меня возникла проблема с моей задачей до такой степени, что я даже не могу понять и не знаю, что я делаю. К счастью, я нашел учебник от AndroidHive, и он действительно сэкономил мне много времени.

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

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

******** ПРОДОЛЖАЙТЕ ЧИТАТЬ ********

НЕ ИЗОБРЕТАЙТЕ КОЛЕСО

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

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

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

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

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

Вы также можете проверить Android Arsenals, вы можете найти множество библиотек на этом сайте.

Помимо этих библиотек, существует коллекция готовых приложений для Android с открытым исходным кодом. Перейти по этой ссылке

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

УЧИТЕСЬ ЯƎВƎЯƧƎ ИНЖЕНЕРУ

Лучший способ изучить новое программное обеспечение — это реконструировать его.

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

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

STACKOVER FLOW — ВАШ ДРУГ

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

Даже Google, Facebook, Twitter, Amazon и другие инженеры технологических гигантов используют StackOverflow. Хотя у этих технологических гигантов есть внутренний поиск по коду, специфичный для их инструментов, API или какой-либо другой механизм, который доступен только внутри их продукта. Они по-прежнему используют StackOverflow для устранения некоторых ошибок и ошибок, связанных с кодом, который они могут использовать. Это не значит, что они все знают, они такие же люди, как и мы. Некоторые инженеры технологических гигантов также используют StackOverflow либо для того, чтобы задать вопрос, либо для ответа на заданный вопрос.

Если вы не знаете ответа на проблему, попробуйте поискать в Интернете, но не полагайтесь только на другие вопросы, вы также можете опубликовать свой вопрос в StackOverflow.

Некоторые ИТ-компании также запрашивают репутацию StackOverflow. В любом случае, что такое репутация StackOverflow?

Что такое репутация StackOverflow? Как вы зарабатываете (и теряете) его?

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

Основной способ завоевать репутацию — публиковать хорошие вопросы и полезные ответы. Голоса за эти посты заставляют вас приобретать (а иногда и терять) репутацию.

Stack Overflow – крупнейшее и пользующееся наибольшим доверием онлайн-сообщество, где разработчики могут учиться, делиться своими знаниями в области программирования и строить свою карьеру.

Посетите мой профиль здесь

ПРИСОЕДИНЯЙТЕСЬ К КАНАЛУ ANDROID SLACK

Помимо StackOverflow, вы также можете обратиться за помощью через слабый канал Android United. Android United – это дружелюбное сообщество Slack, состоящее из профессиональных разработчиков Android.

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

COMMIT AND PUSH: НАЧНИТЕ ИСПОЛЬЗОВАТЬ GIT

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

Git — очень полезный инструмент, особенно для командной работы. По сути, Git — это система контроля версий для отслеживания изменений в компьютерных файлах и координации работы над этими файлами между несколькими разработчиками. Он в основном используется для управления исходным кодом через облачный репозиторий (GitHub, Bitbucket, GitLab, и многие другие).

Чтобы узнать больше о Git, посетите:

ЗАПУСТИТЕ КОД — ИСПОЛЬЗУЙТЕ PROGUARD

Если вы успешно разработали приложение и вам необходимо отправить его в PlayStore, не забудьте внедрить Proguard в конфигурацию Gradle. Proguard — лучший инструмент для защиты исходного кода. Он обеспечивает минимальную защиту от обратного проектирования, скрывая имена классов, полей и методов. Это также уменьшит ваше приложение до 90% меньше. Это 100% бесплатно и доступно для Android SDK.

Проверьте Proguard здесь

ИЗУЧИТЕ ШАБЛОН ДИЗАЙНА И ПРИНЦИПЫ

В объектно-ориентированной разработке программного обеспечения существует 23 шаблона проектирования, которые можно разделить на три категории: творческие, структурные и поведенческие шаблоны. Шаблоны проектирования — это решения общих проблем, с которыми разработчики программного обеспечения сталкиваются во время разработки программного обеспечения. Он также используется для решения технических проблем многократно проверенным способом.

Я уже реализовал шаблоны Singleton, Adapter, Builder, Factory Method, Callback и Facade в своем приложении. Честно говоря, я не могу запомнить все эти шаблоны, но для разработчика очень важно знать хотя бы основы и как все работает. Вам не нужно запоминать весь код, все, что вам нужно знать, это принципы. Вот список шаблонов проектирования, реализованных на Java, которые могут вам помочь.

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

ВЫБЕРИТЕ ПРАВИЛЬНЫЕ АРХИТЕКТУРНЫЕ ШАБЛОНЫ

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

Архитектурные шаблоны относятся к гораздо более широкой или крупной структуре системы и общей организации кода.

Зачем заботиться о ВЫБОРЕ правильного архитектурного шаблона?

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

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

MVC состоит из трех компонентов: представления (или интерфейса приложения), модели (данные, отображаемые в представлении) и контроллера (содержащего бизнес-логику приложения). В MVC представление взаимодействует напрямую с моделью. Контроллер служит логическим уровнем и получает уведомление, когда событие происходит из-за действия пользователя из представления, в то время как в MVP представление ничего не знает о модели, а докладчик будет выступать в качестве посредника для представления и модели. Докладчик отвечает за управление задачей и обновление модели, которая будет отображаться в представлении.

Я не использовал MVVM раньше, но, по моему собственному мнению, исследования и анализ, шаблон MVP работает лучше, чем MVC, так как MVP лучше тестируется и гораздо меньше дорого с точки зрения ремонтопригодности.

  • MVC означает Модель — Представление — Контроллер.
  • MVP означает Модель — Представление — Ведущий.
  • MVVM расшифровывается как Model — View — ViewModel.

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

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

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

ИСПОЛЬЗУЙТЕ ПРАВИЛЬНЫЕ СТАНДАРТЫ ПРОГРАММИРОВАНИЯ И ИЗУЧАЙТЕ ЛУЧШИЕ ПРАКТИКИ ПРОГРАММИРОВАНИЯ

Всегда обращайте внимание на свой стиль кодирования. Ваш код может унаследовать другой разработчик, как только вы покинете компанию. Ваш код также будет представлять, какой вы разработчик. Насколько это возможно, следуйте надлежащим стандартам кодирования. Также лучше знать, где и когда использовать условные операторы. Некоторые разработчики злоупотребляют использованием if else, что ведет к чему-то вроде отступа «Код Хадукена».

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

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

ЗАПРОСИТЬ ОБРАТНУЮ СВЯЗЬ

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

ВЫБИРАЙТЕ МЛАДШИЕ УСТРОЙСТВА

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

МОЖНО КОПИРОВАТЬ И ВСТАВИТЬ КОД

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

Когда я говорю «Можно копировать и вставлять код», я имею в виду только фрагмент кода, а не весь проект.

ИЗУЧИТЕ БАЗОВЫЙ RESTful API и SERVER-SIDE SCRIPT.ING.

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

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

Вы также можете следовать этому исчерпывающему руководству по созданию простого REST API на PHP из CodeoftheNinja.

ПОДЕЛИТЕСЬ СВОИМИ ЗНАНИЯМИ

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

Надеюсь, вы узнали много нового из моего списка 🙂

Хорошие вещи приходят к тем, кто ждет

Хорошие вещи приходят к тем, кто работает не покладая рук и никогда не сдается

Не забудьте поделиться с коллегами или другими социальными сетями, чтобы другие тоже могли извлечь пользу 🙂

Если вы нашли ошибки, напишите мне по адресу [email protected]

Первоначально опубликовано на сайте benjoeriveravidal.com 9 августа 2017 г.