Программа курса
ЗАНЯТИЕ 1. Введение в платформу Android
- Знакомство. Программа курса
- Общие сведения о платформе Android, историческая справка
- Архитектура платформы Android
- Этапы создания приложений, от идеи до GooglePlay
- Установка и настройка необходимых инструментов
- Основные компоненты Android SDK
- Обзор среды разработки (Eclipse и AndroidStudio)
- Пример простого приложения «Hello, Android!»
ЗАНЯТИЕ 2. Структура Android приложения
- Основные компоненты Android приложения
- Модель безопасности и разрешения
- Структура Android проекта
- Жизненный цикл Activity и методы обратного вызова
- Использование LogCat
- Ресурсы в Android приложении (cтроки, размеры, цвета, массивы)
- Альтернативные ресурсы и квалификаторы
- Локализация приложения
ЗАНЯТИЕ 3. Разработка пользовательского интерфейса (UI)
- Особенности проектирования UI для мобильных платформ
- Различия в проектировании UI для телефонов и планшетов
- Основные характеристики экранов
- Принципы построения UI в Android
- Макеты и компоненты контейнеры
- Обзор стандартных элементов UI в Android
- Создание разных версий дизайна для различных конфигураций устройства
ЗАНЯТИЕ 4. Меню и диалоги в Android
- Меню в приложении 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
- Обзор возможностей хранения данных в Android
- Сохранение промежуточного состояния Activity
- Класс SharedPreferences и настройки приложения
- Работа с внутренней (защищенной) памятью
- Получения состояния карты памяти
- Работа с файлами на карте памяти
- Разработка класса для работы с текстовыми файлами
- Активы приложения и Raw ресурсы
ЗАНЯТИЕ 8. Фрагменты и работа с web
- Понятие фрагментов и их жизненный цикл
- Архитектура фрагментов в Android
- Классы Fragment и FragmentManager
- Взаимодействие фрагментов с Activity
- Использование фрагментов
- Работа с протоколом HTTP в Android
- Пример приложения web-клиента
- Подведение итогов
Программа 3-ого месяца
Урок 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"
Для кого
Курс предназначен для новичков в программировании, которые
хотели бы освоить современный язык программирования, являющийся на данный момент
наиболее популярным языком программирования в мире. Знания основ программирования
является желательным. Особенностью курса, что помимо теории(методички, видео-уроки)
ученики разрабатывают с нуля под руководством своего учителя полноценную игру на java.
Таким образом по окончании курса ученик получает практический навык разработки собственной программы.
Чему вы научитесь
- Начать мыслить в терминах Объектно-Ориентированного Программирования
- Компилировать и запускать Java-приложения
- Уметь отлаживать Java-программы
- Познакомитесь со средами разработки Eclipse, Idea
- Разработаете приложение-игру "Морской бой"
- С нуля написание программы "Сетевой чат"
- Написание программы "simple Web-server"
- На 8ом уроке проработаете технические вопросы с собеседований на должность младшего java-разработчика
- Проработаете логические задачки, которые задают на собеседованиях в IT компаниях
Пример игры "Морской-бой", которую вы можете протестировать на Google Play
Исходные коды вы можете найти на github.com
ЗАНЯТИЕ 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.
Для кого
Для комфортного и плодотворного прохождения курса нужно владеть базовыми навыками программирования на Java. Android SDK - это, фактически, большая библиотека классов, при ее использовании Вы столкнетесь со всеми базовыми мехнизмами и методоми объектно-ориентированного программирования.Чему вы научитесь
В этом курсе Вы познакомитесь с особенностями верстки и разработки приложений на мобильной платформе Android. Вы научитесь проектировать сложные многопоточные приложения, а также узнаете об особенностях публикации на Android Market и способах заработка на собственных приложениях.Программа 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
- Отладка и поиск утечек памяти
- Информация для самостоятельного обучения
- Заключение
Для кого курс
Начальных знаний в программировании (в том числе в программировании для устройств Apple) не требуется. Необходимо наличие компьютера или ноутбука Apple.Чему вы научитесь
Курс включает в себя все базовые понятия. По окончании курса выпускник сможет разрабатывать простые приложения для iPhone или iPad и будет иметь надежный фундамент для дальнейшего развития. Профессиональная литература по программированию приложений и интерфейса станет доступна для понимания, так как все базовые понятия языка и стандартные фреймворки будут рассмотрены в курсе.Ориентировочная позиция: помощник разработчика, младший разработчик (junior)
Ориентировочная зарплата: 50 000 -70 000 рублей.
Программа 2-ого месяца
*Необходимо наличие компьютера или ноутбука Apple
Урок 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
-
Введение в искусственный интеллект
- Что такое ИИ?
- Введение в понятия нечетких множеств
- Проведение систематизирующего анализа (построение ИИ)
- Простейшая реализации ИИ
Для кого
Курс «Objective C. Уровень 2» предназначен для iOS и OS X разработчиков, желающих освоить методики разработки интегральных систем и игр, с использованием систем контроля версий, 2d и 3d графики и современных фреймворков. Для полноценного освоения материала слушателям желательно иметь навыки разработки консольных приложений с использованием Objective C или языка Си.Чему вы научитесь
- создавать красивые приложения под iOS и OS X
- пользоваться золотыми правилами разработки интерфейсов от Apple
- пользоваться системой контроля версий
- использовать возможность системных компонент: Геопозиционирование, Bluetooth, WiFi и многое другое
- узнаете о Core Audio, модуляции и профессиональной обработки звуковых колебаний
- работать с видео и аудио файлами
- использовать технологию webkit
- постигните процесс анимации из двухмерного пространства к трехмерному
- освоите методики проектирования игр и искусственного интеллекта (AI)
http://www.proglive.ru/