[GeekBrains] Программист Android, 2015
Скрытый текст. Доступен только зарегистрированным пользователям.
?В 2014 году количество смартфонов в России впервые превысило количество покупаемых телефонов, а Android-устройства заняли более 60% отечественного рынка, и 80% рынка мирового. Разработка приложений под Android сегодня требуется не только крупным компаниям - она выводит на качественно новый уровень любой бизнес - от доставки пиццы до службы такси. И деловая среда уже поймала эту волну. С 2012 по 2014 год количество вакансий для Android-разработчиков выросло на 110%, а с потребностью вырос и авторитет программистов, которые получили возможность не цепляться за первое предложение, а выбирать из предложенных вакансий наиболее оптимальную.
Многие разработчики по природе своей любят исправлять и совершенствовать устройства. Android в этом смысле - самая свободная и открытая система, как нельзя лучше приспособленная для адаптации и модернизации. Да и процесс запуска собственного приложения в Google Play обходится дешевле и осуществляется проще, чем у конкурентов.
Ключевые навыки:
Знание Java Core
Знание Android SDK
Опыт работы в IntelliJ IDEA, Eclipse, Android Studio
Опыт разработки Android-приложений на Java
Опыт работы с XML, JSON, HTTP, sockets
Знание Android API, понимание архитектуры Android, пользовательский интерфейс, меню, диалоги, ресурсы, logcat, MVC
Intents, Fragments, Контент-провайдеры, бродкаст-ресиверы, Google Maps, виджеты, телефония, сенсоры, блютуз, графика и анимация
SQLite, Web, Concurrency
Базовое знакомство с гайд-лайнами Android последней версии
Понимание особенностей работы мобильного приложения в условиях слабого сигнала связи
Уверенное владение базовыми паттернами проектирования
Творческий подход к поставленным задачам
Умение писать чистый код и правильно создавать и использовать модульные тесты
Умение и желание приобретать новые навыки и осваивать новые технологии
Умение быстро разбираться в чужом коде‚ если это понадобится
Java. Уровень 1. Базовый курс
Урок 1. Базовые понятия
Обзор курса, Введение в платформу Java, Настройка среды, Простейшая программа Hello world в блокноте, Запуск и выполнение, Среды разработки(IDE), Знакомство со средой разработки Eclipse, Idea, Hello world в среде Eclipse, Idea
Урок 2. Типы данных
Примитивные типы данных, Объявления переменных и их инициализация, Константы, Стек,куча и где хранятся данные в Java, Преобразования типов в Java, Основные операторы в языке Java: арифметические, логические, битовые, строковые, Работа с символами и строками, Вывод результатов работы программы на консоль
Урок 3. Управление потоком выполнения и циклы
Основы процедурного программирования, Ветвления, Циклы, Проектирование методов, Конструкторы, Хорошие и плохие названия, Параметры методов, Перегрузка методов, Рекурсия
Урок 4. Введение в ООП
Классы и объекты, Абстракция, Инкапсуляция, Наследование, Полиморфизм, Модификаторы доступа
Урок 5. Продвинутое ООП
Принципы проектирования и основы языка UML, Диаграммы классов, Абстрактные классы, Интерфейсы клонирования, Множественное наследование в Java, Программирование в соответствии с интерфейсом, а не реализацией
Урок 6. Collеction Framework
Виды контейнеров в Java: List, Map,Set, Основные реализации контейнеров, Основные приемы использования контейнеров, Проход по элементам коллекции, шаблон проектирования Iterator, Сравнение элементов коллекции, Сортировка элементов коллекции
Урок 7. Исключения
Концепция обработки исключений, Сравнение традиционного механизма обработки ошибок с механизмом, обработки исключений, Блок try-catch-finally, Типы исключений, Стандартные исключения в Java и их роль, Выброс исключения из метода
Урок 8. Написание программы 'Сетевой чат'
Основы работы с библиотекой Swing, Основы работы с файловой системой в Java, Написание игры 'Морской бой' с нуля - в течении 7и уроков, Написание программы 'Сетевой чат', Написание программы 'simple Web-server'
Android. Уровень 1. Разработка под мобильные устройства
Урок 1. Введение в платформу Android
Знакомство. Программа курса Общие сведения о платформе Android, историческая справка Архитектура платформы Android Этапы создания приложений, от идеи до GooglePlay Установка и настройка необходимых инструментов Основные компоненты Android SDK Обзор среды разработки (Eclipse и AndroidStudio) Пример простого приложения «Hello, Android!»
Урок 2. Activity и ресурсы приложения
Основные компоненты Android приложения Модель безопасности и разрешения Структура Android проекта Жизненный цикл Activity и методы обратного вызова Использование LogCat Ресурсы в Android приложении (cтроки, размеры, цвета, массивы) Альтернативные ресурсы и квалификаторы Локализация приложения
Урок 3. Разработка пользовательского интерфейса
Особенности проектирования UI для мобильных платформ Различия в проектировании UI для телефонов и планшетов Основные характеристики экранов Принципы построения UI в Android Макеты и компоненты контейнеры Обзор стандартных элементов UI в Android Создание разных версий дизайна для различных конфигураций устройства
Урок 4. Меню и Диалоги
Меню в приложении Android ActionBar, меню опций и контекстное меню элементов Создание вложенных меню Принципы построения диалоговых окон в Android Класс DialogBuilder Диалоги AlertDialog, TimePickerDialog и DatePickerDialog Создание собственного диалогового окна
Урок 5. Коллекции в Android
Введение в концепцию MVC (Model-View-Controller) Коллекции в Android и класс AdapterView Использование компонента ListView Различные источники данных для списков Работа с элементами списка Класс BaseAdapter, создание собственного адаптера Работа с компонентом GridView Работа с компонентом Spinner
Урок 6. Activity и класс Intent
Механизм намерений в Android Добавление нового Activity в приложение Явный вызов Activity и класс Intent Передача параметров через объект Intent Получение результата работы Activity Неявный вызов Activity Работа со стандартными приложениями (Телефон, SMS, Почта, Браузер) Переопределение класса приложения
Урок 7. Хранение данных
Обзор возможностей хранения данных в Android Сохранение промежуточного состояния Activity Класс SharedPreferences и настройки приложения Работа с внутренней (защищенной) памятью Получения состояния карты памяти Работа с файлами на карте памяти Разработка класса для работы с текстовыми файлами Активы приложения и Raw ресурсы
Урок 8. Фрагменты и web
Понятие фрагментов и их жизненный цикл Архитектура фрагментов в Android Классы Fragment и FragmentManager Взаимодействие фрагментов с Activity Использование фрагментов Работа с протоколом HTTP в Android Пример приложения web-клиента Подведение итогов
Android. Уровень 2. Профессиональная разработка приложений
Урок 1. База данных SQLite
Введение в реляционные базы данных. Язык структурированных запросов SQL. База данных SQLite в Android. Пример приложения для работы с БД.
Урок 2. Интент-фильтры и контент-провайдеры
Интенты (действия, категории, данные). Интент-фильтры. Контент-провайдеры. Пример приложения с контент-провайдером.
Урок 3. Позиционирование и карты
Методы определения местоположения. Работа с картами Google Maps. Внедрение карт в приложение. Управление картой в приложении. Добавление точек на карту. Определение местоположения без карт.
Урок 4. Многопоточность в Android. Сервисы
Понятие процесса и потока. Главный поток приложения. Thread и Runnable. Классы AsyncTask и Loader. Метод post(). Сервисы (службы) в Android.
Урок 5. Broadcast Receivers. Виджеты
Понятие Broadcast Receiver. Примеры использования бродкастов. Виджеты начального экрана. Пример простого виджета.
Урок 6. Телефония, сенсоры, bluetooth
Менеджер телефонии в Android. Отслеживание входящих вызовов. Сенсоры устройства. Bluetooth.
Урок 7. Компоненты UI. Графика. Анимация
Создание компонентов UI. Жизненный цикл компонента UI. Графика в Android. Анимация.
Урок 8. Отладка приложений
Отладка Android приложений. Точки останова и пошаговое выполнение. Интерфейс ADB shell. DDMS, Traceview, LogCat.