Стать Android разработчиком
Хочу создавать качественные, удобные и полезные мобильные приложения для людей, решающие их проблемы. В будущем устроиться в компанию, занимающуюся разработкой ПО или основать свой старта.
Критерий завершения
Создать несколько pet-проектов и приложений, разместить в GooglePlay
Личные ресурсы
Время, знание основ программирования и ООП, начальные знания синтаксиса Ruby, Java-core, Python, JS, HTML, сайт startandroid.ru, различные сайты, книги и видеокурсы по Java и Android разработке, вера в себя и огромное желание учиться.
Экологичность цели
Смена рода деятельности и возможно Фриланс. Цель позволит создавать свои интересные проекты, реализовывать свои идеи, зарабатывать хорошие деньги развивая свой мозг и обучаясь.
-
Организовать рабочее место
-
Скачать, установить JDK.
-
Скачать, установить Android SDK. Настроить среду разработки Android Studio или IDEA.
-
Скачать, установить и настроить эмулятор Genymotion
-
Скачать, установить Git и настроить работу с GitHub
-
-
Подтянуть знания в Java-core
-
Прочитать книгу Head First Java. Авторы: Кэти Сиерра, Берт Бейтс (есть в наличии)
-
Прочитать книгу Java 8. Руководство для начинающих, 6-е издание. Автор: Герберт Шилдт (есть в наличии)
-
Пройти видео курсы от geekbrains.ru. Java 1 (есть в наличии)
-
Написать несколько программ для проверки знаний. (крестики-нолики, морской бой и т.д.)
-
-
Написать свое первое приложение
Написал, https://github.com/solandmedotru/RemindMeAbout
Залил на Google Play https://play.google.com/store/apps/details?id=ru.solandme.remindmeabout
Продолжаю поддерживать и обновлять, по мере обучения
-
Создать свое первое работающие приложение (напоманание о праздниках с возможностью отправки поздравлений из базы)
-
Опубликовать приложение на Google Play
-
Получить отзывы и добиться 1000 скачиваний
-
Добавить рекламу в приложение и заработать первые 100 долларов
-
-
Изучить теоретические основы Андроид разработки
-
Прочитать книгу Head First. Программирование для Android. Автор Д. Гриффитс, Д. Гриффитс (есть в наличии)
-
Пройти видео курсы от geekbrains.ru Профессия Андроид - разработчик. Уровень 1 (есть в наличии)
-
Пройти видео курсы от geekbrains.ru Профессия Андроид - разработчик. Уровень 2 (есть в наличии)
-
Просмотреть все видео на сайте startandroid.ru и fandroid.info (есть в наличии)
-
Пройти видео курсы от Тимура Батыршинова по Android разработке (есть в наличии)
-
Пройти видео курс от LoftSchool. Комплексное обучение разработке на Android. (есть в наличии)
-
Прочитать книгу Android. Программирование для профессионалов 2-е издание.
-
Прочитать книгу. Программирование для андроид 5. Самоучитель. Колиснеченко Д.Н.
-
-
Углубленное изучение Java
-
Прочитать книгу Java 8. Полное руководство. Автор: Герберт Шилдт (есть в наличии)
-
Пройти видео курсы от geekbrains.ru. Java 2 (есть в наличии)
-
-
Еще один чек-лист знаний перед собеседованием
-
Файл AndroidManifest.xml: зачем нужен, необходимые параметры, секции.
-
Структура проекта: assets, res, src, gen, libs. Что лежит в каждой папке, что должно лежать под версионным контролем, а что нет
-
Компоненты приложения. Activity, Service, BroadcastReceiver, ContentProvider.
-
Особенности запуска Activity и Service. Что такое Task, Activity Stack. Как принимается решение о запуске процесса Service.
-
ContentProvider, зачем нужен, как используется. Доступ и использование ContentResolver. Работа с курсорами. Помнить про managed cursors.
-
BroadcastReceiver: статические и динамические, механизмы вызова, lifecycle.
-
Межпроцессное взаимодействие. Что такое и зачем нужен Intent, как передавать информацию с его помощью, что такое Bundle и зачем нужен Parcel
-
Построение UI приложения. Что такое Layout и View, какие бывают типы layout'ов(4 штуки), зачем они применяются.
-
Хранение данных в платформе: 4 типа. Internal, External Storage, DB, SharedPreferences. Варианты использование, отличия.
-
Локализация. Встроенные средства платформы для локализации, моменты выбора локали.
-
Виджеты. Механизм создания виджетов, доступные средства UI в них. Что такое AppWidgetProvider.
-
Работа в фоне. Когда использовать Service, когда AsyncTask. Что такое AsyncTask, его связь с UI.
-
Модель безопасности в Android. Разрешения.
-
Использование телефонных средств: сенсоров, вибрации, GPS.
-
Новинки платформы: Loaders, Fragments, In-app billing.
-
Производительность в платформе: best practices. Неиспользование enums до 2.2, использование final и проч.
-
Поддержка старых версий платформы: доступ до функциональности через Reflection.
-
Собственные views: механизмы отрисовки, Canvas.
-
Состояния компонент: какие компоненты системы могут сохранять состояния(Activity и View), способы сохранения и восстановления состояний
-
Механизмы подписи приложений для публикации в Android Market.
-
Android NDK: вызов нативного кода
-
Фреймворки для разработки под различные мобильные OS: Titanium, PhoneGap и прочие.
-
-
Что я должен буду знать.
-
Общая архитектура приложения. Компоненты приложения.
-
Интерфейс (Fragments, ActionBar, диалоги и прочее). Работа с анимацией элементов управления. Создание кастомных элементов управления.
-
Многопоточность (Threads + Handler, AsyncTask, runOnUiThread, post).
-
Работа с файлами.
-
Сеть. Сокеты. WebView.
-
Сервисы.
-
Google Maps и GPS (в перспективе возможно OpenStreetMap и MapKit Яндекса).
-
SQLite.
-
Протоколы. HTTP/HTTPS, JSON, XML, OAuth2, возможно protobuf.
-
API социальных сетей (ВКонтакте, Facebook, Twitter, Instagram, Flickr).
-
Создание виджетов.
-
-
Создать свое второе приложение (более сложное) с использованием клиент-серверных технологий
-
Создать клиентскую часть (мобильное приложение)
-
Создать серверную часть (на Node.js, Ruby on Rails или на чем к тому времени я буду уметь писать)
-
Покрыть хотя бы 70% кода тестами
-
-
Что нужно знать и чем нужно уметь пользоваться
Английский язык на уровне чтенияПринципы ООП, java, jvm, garbage collector, Gradle, GitРазбираться и отличать друг от друга MVC, MVP и MVVMПамять. Как она устроена и как с ней работатьЖизненный цикл ActivityЖизненный цикл FragmentКонцепции Material DesignSupport Libraries- Dagger 2 — самый популярный фреймворк, реализующий Dependency Injection для Android
- ButterKnife. Используется, когда нужно связывание полей и методов с Android views и когда лень копипастить findById
Retrofit. Нужен для работы с Rest-API- Конвертер для json Moshi
GSON Загрузчик изображений PicassoOkHttp- Библиотека RxJava
- RxAndroid
- Timber (удобное и умное логирование)
Retrolambda. Позволяет использовать Java 8 лямбда-выражения- nosql-база данных Realm
- обёртка над sqllite StorIO
- обёртка над sqllite Cupboard
- LeakCanary. Помогает отлавливать утечки базы данных
Приветствуется:
- Знание Kotlin / C++
-
Найти ментора, пройти стажировку и выбрать дальнейший путь развития
-
Найти ментора (Гуру)
-
Пройти стажировку
-
Устроится на работу или уйти во фриланс (еще не решил)
-
- 4206
- 13 марта 2016, 12:16
Не пропустите новые записи!
Подпишитесь на цель и следите за ее достижением