Какие части Java мне нужно подробно изучить перед началом разработки Android?

TL; DR? Перейдите на дно, чтобы увидеть краткий список полезных концепций.

Спасибо за A2A, Мохаммед Лайф ! Какие части Java мне нужно было знать перед началом разработки Android? В моем случае ничего из этого.

Когда я начал разрабатывать для Android, я никогда раньше не читал и не касался Java. И вы можете задаться вопросом, как кто-то может начать программировать на языке, который никогда не использовал раньше; Хороший вопрос, читатель.

У меня в рукаве было три секретных оружия, первым секретным оружием был язык Си . Если Java — это неуклюжая горилла весом 400 фунтов, привязанная к мусорному контейнеру, то C — шимпанзе, который проворно качается от дерева к дереву с невероятной скоростью.

«Я не понимаю, почему там мусорная корзина? — Это потому, что у тебя крошечный тупой обезьяний мозг, Джеральд.

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

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

Если вы не являетесь владельцем или не имеете доступа к Stoyan, я настоятельно рекомендую учиться в Google для получения помощи по программированию. Это означает формулирование ваших вопросов таким образом, чтобы избежать лишних, ориентированных на пользователя ответов. Например, «как запустить приложение для Android» против «как запустить приложение для Android программно ».

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

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

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

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

Сверхинженерная угроза

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

Узнайте больше о NOTIFi: сколько времени вы потратили на создание своего первого приложения для Android?

И благодаря моим слабым Java и навыкам программирования, я пробил несколько пугающих углов, чтобы запустить это приложение. Чтобы хранить информацию, такую ??как порядок, расположение и содержимое каждого ярлыка, сохраненного пользователем, я поместил их в API Android под названием SharedPreferences.

SharedPreferences — это структура данных, предназначенная для хранения пользовательских настроек и других несвязанных переменных. Например, если вы откроете настройки Twitter и отключите уведомления, это может изменить логическое значение notifications_enabled в SharedPreferences на false.

Исходя из моего опыта, это был единственный способ, которым я знал, как хранить постоянные данные (я понятия не имел, как работают базы данных или как создать экземпляр на Android). Поэтому, когда я создавал NOTIFi, я сохранял все данные приложения в SharedPreferences. Чтобы дать вам представление о сфере, это было похоже на попытку напечатать целую телефонную книгу на печенье с предсказаниями.

Это сработало . Пользователи любили приложение, несмотря на то, как неправильно хранятся его данные — им было все равно, потому что они не знали. Использование SharedPreferences сделало практически невозможным обновление схемы данных или проверку ее целостности.

После того, как я узнал о базах данных, я понял , что NOTIFi был тикающая бомба (не очень, но это чувствовал , что путь). Что я сделал? Я не переключался с SharedPreferences на базу данных SQLite. Я полностью перепроектировал приложение с нуля, используя целый ряд новых методов, которые я изучил с момента выпуска первой версии.

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

Нет, нет. Пользователи ненавидели новую версию. Я перепроектировал NOTIFi и создал для них плохой мотоцикл:

Не строить плохой велосипед.

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

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

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

Материал, который я считаю ценным

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

  1. Наследование — если вы больше ничего не узнаете, узнайте, как объекты Java наследуются друг от друга .
  2. Базы данных SQL (но, в частности, ORM) — это не специфично для Java, но я настоятельно рекомендую вам узнать, как работает SQL, а затем научиться использовать библиотеку ORM, такую ??как SugarORM , greenDAO или Orma .
  3. Шаблон MVC — или модель-представление-контроллер . Используйте это при создании пользовательских интерфейсов и манипулировании данными.
  4. Шаблон делегирования — это требует знания интерфейсов Java , и он часто возникает в Android. Узнайте больше о делегировании .
  5. Шаблон Singleton — в Android много нативных синглетонов (максимум один экземпляр данного класса), и они могут помочь поддерживать состояние во всем приложении. Узнайте больше о синглетонах .
  6. и многопоточность — безусловно, одна из самых важных вещей, которые вы должны знать, это как использовать AsyncTask . Также необходимо знать разницу между основным (или пользовательским) потоком и фоновыми потоками.

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

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

0

Ура! Вы первые нашли эту информацию, сделайте доброе дело, поделитесь ей в: