Съдържание и теми, включени в курса
Въведение
Седмица 1: Обзор на мобилната разработка
- Мобилна екосистема и платформи
- Преглед на мобилните операционни системи (iOS и Android)
- Ключови разлики между iOS, Android и кросплатформената разработка
- Популярни магазини за приложения (Apple App Store, Google Play Store)
- Въведение в нативната, хибридната и кросплатформената разработка
- Нативна, хибридна и кросплатформена разработка
- Предимства и предизвикателства на всеки метод на разработка
- Преглед на Swift (за iOS), Kotlin (за Android) и React Native (кросплатформена)
- Как кодът се транслира към мобилните платформи (JavaScript към нативен код в React Native)
- Основи на програмирането
- Въведение в програмните концепции (променливи, типове данни, функции, управление на потока)
- Сравнение на синтаксиса на Swift, Kotlin и JavaScript
- Писане на прости програми с Swift, Kotlin и JavaScript
- Настройка на среди за разработка
- Инсталиране на Xcode и Android Studio
- Настройка на React Native CLI и Expo
- Стартиране на базови приложения "Hello World" на симулатори и емулатори
Седмица 2: Въведение в Swift, Kotlin и JavaScript
- Програмиране със Swift за iOS
- Променливи, константи и типове данни в Swift
- Изрази за управление на потока (
if,switch, цикли) - Функции и параметри в Swift
- Запознаване с интерфейса на Xcode и Swift Playgrounds
- Програмиране с Kotlin за Android
- Променливи, типове данни и функции в Kotlin
- Разбиране на null безопасността в Kotlin’s
- Управление на потока и циклични структури
- Запознаване с интерфейса на Android Studio и Kotlin Playground
- JavaScript за React Native
- Променливи, константи и управление на потока в JavaScript
- Характеристики на ES6: стрелкови функции, шаблонни литерали и деструктуриране
- Писане и изпълнение на основни JavaScript програми в React Native с помощта на Expo
Седмица 3: Дизайн на потребителски интерфейс за iOS
- Елементи на потребителския интерфейс в iOS
- Въведение в UIKit и SwiftUI
- Добавяне и персонализиране на UI елементи като бутони, етикети и текстови полета
- Използване на Interface Builder за проектиране на UI
- Работа със Storyboards и проектиране на многоекранни потребителски интерфейси
- Auto Layout и ограничения
- Разбиране на системата Auto Layout
- Използване на ограничения за адаптивни оформления при различни размери на екрана
- Създаване на стекови изгледи и динамично адаптиране на UI елементи
- Основи на SwiftUI
- Въведение в декларативния UI дизайн в SwiftUI
- Изграждане на прости UI компоненти с помощта на SwiftUI
Седмица 4: Дизайн на потребителски интерфейс за Android
- XML оформления в Android
- Въведение в дизайна на оформления, базиран на XML
- Работа с често срещани оформления: LinearLayout, RelativeLayout, ConstraintLayout
- Добавяне и персонализиране на UI елементи: бутони, текстови изгледи, изгледи за изображения
- Използване на ConstraintLayout за адаптивни и динамични оформления
- Material Design
- Интегриране на принципите на Material Design (цветове, икони, типография)
- Използване на Material компоненти (бутони, плаващи бутони за действие, карти)
- Прилагане на теми и стилове за Android приложения
Седмица 5: Дизайн на потребителски интерфейс за React Native
- Flexbox оформление в React Native
- Разбиране на Flexbox за адаптивен дизайн на оформление
- Създаване на оформления, базирани на колони и редове
- Стилизиране на UI компоненти със свойства на Flexbox (justifyContent, alignItems и др.)
- React Native компоненти
- Работа с основни компоненти като
Text,View,TextInputиButton - Създаване на интерактивни UI елементи като формуляри и бутони
- Използване на компонента
ScrollViewза динамично съдържание
- Работа с основни компоненти като
Седмица 6: Обработка на данни в iOS и Android
- Обработка на данни в iOS
- Използване на UserDefaults за просто съхранение на данни
- Въведение в Core Data за локално съхранение на сложни данни
- Извличане на данни от API с помощта на URLSession
- Парсиране на JSON данни и изобразяването им в потребителския интерфейс
- Обработка на данни в Android
- Използване на SharedPreferences за съхранение на малки количества данни
- Въведение в SQLite и Room Persistence Library за управление на бази данни
- Извличане на данни от API с помощта на Retrofit
- Парсиране на JSON и обработка на отговори от API
Седмица 7: Управление на състоянието и API в React Native
- Състояние и props в React Native
- Управление на потока от данни в компонентите на React Native
- Използване на хука
useStateза управление на локалното състояние на компонента - Предаване на данни между родителски и дъщерни компоненти чрез props
- Извличане на данни в React Native
- Използване на Fetch API и Axios за извършване на HTTP заявки
- Изобразяване на извлечените данни в списъци (с използване на
FlatList,SectionList) - Локално съхранение на данни с помощта на AsyncStorage в React Native
Седмица 8: Навигация в iOS и Android
- Навигация в iOS
- Въведение в навигационните контролери и управление на множество екрани
- Използване на segues за преход между view контролери
- Предаване на данни между view контролери
- Внедряване на TabBar и NavigationBar за структурирана навигация
- Навигация в Android
- Работа с Activities и Intents за многоекранни приложения
- Предаване на данни между Activities с помощта на Bundles
- Създаване на Navigation Drawer и BottomNavigationView
- Внедряване на fragments за гъвкава UI навигация
Седмица 9: Навигация в React Native
- Основи на React Navigation
- Инсталиране и настройка на React Navigation
- Използване на Stack Navigator за преходи между екрани
- Внедряване на Tab Navigator и Drawer Navigator за сложна навигация
- Предаване на параметри между екраните и управление на състоянието на навигацията
Седмица 10: Разширени функции
- Разширени функции в iOS:
- Core Location и карти
- Достъп до местоположението на устройството с Core Location
- Изобразяване на карти с помощта на MapKit
- Обработка на геолокация и проследяване на местоположението на потребителя
- Камера и мултимедия
- Достъп до камерата на устройството и библиотеката със снимки
- Заснемане и изобразяване на изображения с UIImagePickerController
- Съхранение и извличане на мултимедийни файлове
- Core Location и карти
- Разширени функции в Android
- Местоположение и карти
- Използване на Google Maps API за изобразяване на карти и местоположението на потребителя
- Достъп до GPS данни и обработка на геолокация
- Камера и мултимедия
- Използване на CameraX за заснемане на снимки и обработка на разрешенията за камера
- Изобразяване на изображения и управление на мултимедийно съхранение
- Местоположение и карти
- Разширени функции в React Native
- Карти в React Native
- Интегриране на карти с помощта на
react-native-maps - Обработка на услуги, базирани на местоположение (геолокация, картографиране на маршрути)
- Интегриране на карти с помощта на
- Достъп до камера и мултимедия
- Използване на библиотеката React Native Camera за заснемане на снимки
- Достъп до мултимедийното хранилище на устройството и работа с файлове
- Карти в React Native
Седмица 11: Дебъгване и тестване
- Дебъгване и тестване в iOS
- Използване на дебъгера на Xcode
- Задаване на точки на прекъсване и проверка на променливи в Xcode
- Използване на конзолата за дебъгване в реално време
- Често срещани проблеми при дебъгване и начини за тяхното разрешаване
- Модулно тестване в iOS
- Писане и изпълнение на модулни тестове с помощта на XCTest framework
- Мокване на обекти и тестване на UI компоненти
- Използване на дебъгера на Xcode
- Дебъгване и тестване в Android
- Използване на Logcat в Android Studio
- Логване и анализиране на грешки с помощта на Logcat
- Дебъгване на Android приложения с точки на прекъсване
- Модулно тестване в Android
- Писане на модулни тестове с JUnit
- Тестване на Android UI компоненти с Espresso
- Използване на Logcat в Android Studio
- Дебъгване и тестване в React Native
- Инструменти за дебъгване в React Native
- Използване на Chrome DevTools и React Native Debugger за дебъгване в реално време
- Конзолни логове и проверка на мрежови заявки
- Модулно тестване в React Native
- Писане на модулни тестове с Jest и Enzyme
- Тестване на React Native компоненти и управление на тестови случаи
- Инструменти за дебъгване в React Native
Седмица 12: Публикуване на приложения и обобщаващ проект
- Публикуване и разпространение
- Подаване в iOS App Store
- Подготовка на приложението за разпространение (икони, сертификати, provisioning профили)
- Използване на App Store Connect за подаване на приложението за преглед
- Използване на TestFlight за бета тестване
- Подаване в Android Play Store
- Подготовка на APK и подписване на приложението за разпространение
- Използване на Google Play Console за подаване и проследяване на приложението
- Разбиране на политиките и насоките на Play Store
- Подаване в iOS App Store
- Разработка на обобщаващ проект
- Разработка на финален проект
- Изграждане на напълно функционално приложение по ваш избор
- Включване на разширени функции като API извиквания, навигация, мултимедия и локация
- Представяне и демонстрация на финалното приложение пред колеги и инструктори
- Разработка на финален проект
Обобщение и следващи стъпки
Изисквания
- Основни познания по програмни концепции
- Основни познания по JavaScript
Аудитория
- Разработчици на мобилни приложения
- Програмисти
Отзиви от участници (3)
Всичко е наред.
Adrian Rybka - SEOyon
Курс - Flutter Development Bootcamp with Dart
Машинен превод
Много полезна допълнителна информация
Grzegorz - Comp S.A.
Курс - BLoC Pattern
Машинен превод
Разработване на приложението за потребителска аутентикация и активността кахут (посвятих си времето да абсорбирам училищните лекции :) и е забавно!)
Jhoanne - Pag-IBIG Fund
Курс - .NET MAUI Fundamentals
Машинен превод