Мобильный разработчик
Мобильный разработчик
GeekBrains запускает специальную программу «Мобильный разработчик» — это разработка мобильных приложений под операционные системы iOS (для устройств iPhone и iPad) и Android.
Помимо конкретных языков в программу заложена очень мощная база обучения принципам правильной разработки мобильных приложений (то, чего так не хватает многим программистам). Обучение культуре кода, как мы ее иначе называем. Все обучение можно глобально разделить на два блока: освоение мобильной разработки под устройства Apple и под Android.
Программа обучения:
Первый месяц — Objective C. Уровень 1. (Необходимо наличие компьютера или ноутбука Apple)
Урок 1. Введение.
Краткая история развития языков программирования.
Краткая история компании Apple и почему следует изучать программирование под iPhone или iPad.
Введение в Objective C.
Перечисление ключевых отличий от языков Java и C++.
Знакомство со средой XCode4. Как скачать, установить и запустить.
Знакомство с основными окнами среды.
Понятие файла заголовка и файла тела программы. main – главная функция в приложении.
Консольное приложение Hello World.
Урок 2. Типы данных.
Типы данных в C и Objective C.
Объявление переменных и их инициализация.
Константы и ключевое слово #define.
Объявление typedef.
Основные операторы: арифметические, логические, битовые, строковые.
Объяснение общей этимологии булевых и числовых типов данных.
Работа с символами и строками.
NSString и ее креаторы (без объяснения принципов ООП).
Способы форматирования строковых данных.
Функция NSLog.
Урок 3. Управление процессом выполнения программы.
Основы процедурного программирования.
Ветвления и основные логические операторы, правила составления логических выражений.
Циклы и их разновидности.
Объявление функции.
Ветвления (в коде).
Хорошие и плохие названия.
Рекурсия.
Включение других исполняемых файлов с помощью утилиты.
#include.
Составление консольной программы использующей все пройденные конструкции языка.
Урок 4. Введение в управление памятью и ООП.
Понятие структуры и способы обращения к данным в ней.
Введение в управление памятью.
Объяснение Runtime среды и ее отличие от классических компиляторов.
Ключевые слова alloc, release, retain.
Классы и объекты.
Конструктор объекта.
Понятие пустой ссылки на объект и особенности работы с ним в Objective C.
Урок 5. Продвинутое ООП.
Инкапсуляция.
Наследование.
Полиморфизм.
Методы класса и методы экземпляра.
Понятие свойств объекта и ключевые слова @property и @synthesize.
Понятие соглашений конструктора и деструктора.
Объяснение способа освобождения данных внутри объекта и функции dealloc.
Понятие категории и протокола.
Сокрытие функции и модификаторов доступа внутри категории.
Урок 6. Продвинутое ООП и управление памятью.
Соглашения языка о наименованиях функции и класса.
Расширенное объяснение механизма подсчета ссылок.
Классические коллекции.
Оболочки в Objective C.
Навигация внутри коллекций.
Краткое объяснение формата XML и его роль в Objective C.
Работа с файлами.
Понятие сериализации. Сохранение и чтение данных массива в файл.
Шаблоны программирования.
Урок 7. Знакомство со средой COCOA.
Среда Cocoa.
Шаблона Delegate и Singleton как основной шаблон среды Cocoa.
Основные классы среды и их диаграмма.
Подробнее и строках и классе NSString.
Пояснение работы с сообщениями.
Понятие селектора.
Понятие KVO (подход к программированию ключ/значение).
Рассылка широковещательных уведомлений с помощью NSNotificationCenter.
Observer и KVO.
Введение в оконные приложения.
Основные типы пользовательского интерфейса.
Урок 8. Закрепление пройденного.
Редактор интерфейса.
Что такое nib файл.
Эмулятор iPhone или iPad.
Основные классы пользовательского интерфейса iPhone.
Понятие об MVC.
Таблицы как каркас для построения интерфейса и класс UITableView.
Контроль навигации UINavigatorControl.
Написание простого приложения хранения рецептов под iPhone.
Отладка и поиск утечек памяти.
Информация для самостоятельного обучения.
Заключение.
Второй месяц — Objective C. Уровень 2.
Урок 1. Основы разработки приложения под OS X и iOS.
Краткая история развития языков программирования.
Разделение этапов.
Командная разработка.
Разделение команды и обязанностей.
Developer Account.
Что такое?
Как пользоваться?
Системы контроля версий (СКВ).
Что это такое?
Популярные СКВ.
Популярные СКВ Какую систему мы будем использовать?
Основные команды СКВ.
Первый проект с использованием СКВ.
Урок 2. Проектирование дизайна.
Создание дизайна приложения.
Основные редакторы.
Выбор редактора.
Рисуем наше будущее приложение.
Групповое проектирование интерфейса.
Создание дизайна иконок.
Золотой стандарт проектирования дизайна от Apple.
Введение в шаблоны XCode.
Выбор шаблона XCode под наш дизайн.
Сопоставление дизайна и приложения.
Запуск приложения с авторским дизайном.
Урок 3. Использование фреймворков, часть 1.
Работа с адресной книгой.
Чтение и добавление контакта.
Работа с календарем.
Чтение и добавление событий.
Системные компоненты.
WiFi.
Bluetooth.
Gelolocation.
Урок 4. Использование фреймворков, часть 2.
Разработка медиаприложения.
Работа с видео.
Работа со звуком.
Использование QuickTime.
Разработка браузера.
Использование технологии WebKit.
Урок 5. Продвинутая графика.
Основы фреймворка Quartz.
Введение в переходы.
Что такое переход?
Виды переходов.
От чего зависит плавность перехода?
Кривые Безье.
Построение перехода на основе кривых Безье.
Разработка визуальных эффектов.
Основы разработки эффектов для изображений.
Пиксели и их свойства.
Алгоритмы эффектов.
Разработка галереи.
Урок 6. Разработка игры. OpenGL.
Введение в OpenGL.
Проект для OS X и iOS с OpenGL.
Что такое 2d?
Что такое 3d?
Матрица преобразований 2d и 3d.
Основные примитивы OpenGL.
Что такое сцена?
Добавление примитивов на сцену.
Перспектива.
Зона видимости.
Урок 7. Разработка игры. Анимация, игровая физика.
Что такое анимация?
Виды анимации и fps.
Введение в игровую физику.
Векторы в 2d и 3d.
Математические библиотеки.
Акселерометр и гироскоп.
Урок 8. Разработка игры. Cocos2d и искусственный интеллект.
Введение в Cocos2d.
Что такое Cocos2d?
Что такое спрайты?
Анимация, физика в Cocos2d.
Создание первого проекта с Cocos2d.
Введение в искусственный интеллект.
Что такое ИИ?
Введение в понятия нечетких множеств.
Проведение систематизирующего анализа (построение ИИ).
Простейшая реализации ИИ.
Третий месяц — Java.
Урок 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.
Введение в курс. Согласование режима работы.
Введение в платформу Android.
Краткий обзор мобильных платформ и устройств, на которых они функционируют, распространенных на текущий момент. Что отживает, что актуально.
Android. Распространенность на рынке. Устройства, которые поддерживают его.
Заработок с Android:
Востребованность Android-разработчиков в России, Новосибирске. Предприятия, разрабатывающие под Android. Зарплаты.
Частная разработка приложений. Заработок в Android Маркет.
Архитектура ОС Android.
Структурная схема уровней.
Виртуальная Java-машина Dalvik.
Версии API, их различие.
Особенности разработки под Android.
Как различные версии API влияют на процесс разработки, необходимость оптимизации под максимальное количество версий API.
Зоопарк устройств, процессоров и разрешений, ориентаций экрана, объемов памяти.
Начинаем разработку.
Создаем новый проект «Hello, World!!». Краткий обзор структуры проекта. Знакомство с файлом AndroidManifest.xml. Создаем виртуальное устройство и запускаем этот проект на нем. У кого есть реальное устройство — подключаем и запускаем.
Исходный код контроллера главного окна приложения. Жизненный цикл окна — Activity. Изучение коллбеков на события, которые проиходят на протяжении жизни окна. Создаем onCreate(), onPause(), onStop(), onResume() — логгируем о событии. Потом вместо лога выводим сообщения Toast.
Верстаем в main.xml форму ввода данных о человеке — ФИО, пол, возраст с использованием разных визуальных компонент. Кнопка «Очистить», кнопка «Сохранить» проверяет заполненность необходимых полей, сохраняет информацию в файл. Кнопка «Загрузить» загружает информацию из файла.
Самостоятельное задание.
Уроки 2-3.
Верстка экранов.
Характеристики экрана: размеры, пиксельная плотность, разрешение, ориентация. Внутренние единицы измерения: px, dip, dp. Обобщенные категории размеров экрана: small, normal, large, xlarge. Обобщенные категории разрешений: ldpi, mdpi, hdpi, xhdpi.
Виды контейнеров: LinearLayout, RelativeLayout, TableLayout.
Элементарные компоненты: Button, TextEdit, TextView, т.д.
Компонент ImageView. Ресурсы Drawable. Назначение ресурса на состояние Drawable. Картинка — кнопка.
Работа с визуальными компонентами в коде: класс View — его методы, общие для всех вьюшек, подклассы Button, TextView, т.д. Класс ViewGroup. Метод findViewById(), класс LayoutInflater.
Получение ресурсов: getResources(), работа с Drawable, Color, String (+работа cо строками формата).
Верстка экрана редактирования данных о человеке по данному дизайну.
Урок 4.
Диалоги. Создание диалогов, виды диалогов, создаем все диалоги из приложения ApiDemos App/Dialogs (7 видов).
Меню. Создание всех меню из App/Menu.
Урок 5.
Работа со списками. Компонент ListView. Класс адаптера ListAdapter. Создаем список контактов людей. Компонент «Галлерея».
Урок 6.
Файл AndroidManifest.xml: структура, назначение компонентов. Работа с большим количеством экранов.
Класс Intent один их основных рабочих лошадок Android. Запуск камеры, запуск видео, медиаплейера и т.д. при помощи Intent. Запуск другого Activity из текущего. Запуск Activity как диалога.
Важные моменты, которые надо учитывать при разработке:
— Activity пересоздается при повороте: как сохранить данные.
— Расширяем класс Application.
Уроки 7-8.
Работа с Интернет.
Многопоточность в Android.
Готовим продукт к публикации на Android Market.
После обучения все только начинается! Со Школой Программирования у вас есть уникальная возможность сразу же получить опыт разработки реальных проектов.
Специальная программа стажировки студентов Школы Программирования проходит в рамках проекта «Клуб разработчиков» в течение двух месяцев после обучения:
— Регистрируетесь в клубе в качестве разработчика.
— Выберите интересный проект для участия, или предложите свой.
— Работайте, общайтесь и оттачивайте мастерство в команд.
После успешного окончания обучения по программе «Мобильный разработчик» Вы получите Сертификат Центра компьютерного обучения «Школа Программирования». Сертификат выпускника Школы Программирования – это своеобразный знак качества в нашей отрасли, по которому работодатели могут отличить высококлассных специалистов среди множества разработчиков.
Внимание: курс закрыт, но вы можете перейти на страницу «Разработчик приложений на Android» → или на страницу «Разработчик приложений на iOS» →