Съдържание и теми, включени в курса
Въведение
Седмица 1: Напреднали концепции в Swift, Kotlin и JavaScript
- Swift (iOS)
- Напреднали функции: Closures, улавяне на стойности, функции от по-висок ред
- Протоколно-ориентирано програмиране и generics
- Управление на паметта с ARC (Automatic Reference Counting)
- Kotlin (Android)
- Функции за разширение и Kotlin Standard Library
- Coroutines за асинхронно програмиране
- Sealed класове, enums и напреднала обработка на грешки
- JavaScript (React Native)
- Напреднали ES6+ функции: Деструктуриране, async/await, promises
- Концепции за функционално програмиране в JavaScript
- Работа с библиотеки на трети страни в React Native
Седмица 2: Архитектура на мобилни приложения и дизайн модели
- MVVM (Model-View-ViewModel) за iOS и Android
- Разбиране на MVVM архитектурата за iOS (Swift) и Android (Kotlin)
- Внедряване на ViewModels и наблюдение на данни с LiveData (Android) и Combine (iOS)
- Реактивно програмиране с RxSwift и RxKotlin
- Компонентно-базирана архитектура в React Native
- Разбиране на жизнения цикъл на компонентите и hooks
- Най-добри практики за управление на състояние и props в голям мащаб
- Използване на React Context API за глобално управление на състоянието
Седмица 3: Напреднали концепции за работа с мрежа
- Работа с мрежа в iOS (Swift)
- Работа с URLSession за персонализирани мрежови заявки
- Напреднали извиквания на REST API и обработка на грешки
- Работа с Codable и JSON парсване
- Най-добри практики за сигурна API комуникация (SSL pinning, OAuth)
- Работа с мрежа в Android (Kotlin)
- Retrofit за правене на API извиквания и обработка на отговори
- Напреднала обработка на грешки при API и механизми за повторен опит
- Използване на Gson или Moshi за JSON парсване
- Сигурна комуникация чрез HTTPS и OAuth удостоверяване
Седмица 4: Работа с мрежа в React Native
- API интеграция с Axios и Fetch
- Напреднала API интеграция с Axios и Fetch
- Стратегии за обработка на грешки и повторни опити при мрежови заявки
- Работа с удостоверяване (JWT, OAuth)
- WebSockets и комуникация в реално време
- Въведение в WebSockets в React Native
- Изграждане на функции за чат в реално време или известия с WebSocket връзки
- Управление на постоянни връзки и актуализации на данни
Седмица 5: Напреднали техники за запазване на данни
- Core Data и SQLite (iOS)
- Напреднали връзки в Core Data, извличане и заявки
- Директно използване на SQLite за iOS приложения и управление на връзки с база данни
- Ефективна обработка и оптимизация на данни
- Room Persistence и SQLite (Android)
- Напреднали връзки и заявки в база данни Room
- Управление на големи набори от данни и оптимизиране на производителността на базата данни
- Използване на ProGuard за сигурност на структурите на базата данни
- Firebase за облачно съхранение (iOS и Android)
- Интеграция с Firebase за управление на база данни в реално време
- Най-добри практики за синхронизиране на локални и облачни данни
Седмица 6: Напреднало управление на състоянието в React Native
- Redux за управление на състоянието
- Напреднали концепции в Redux: Middlewares, Thunks и Sagas
- Оптимизиране на Redux за производителност и мащабируемост
- Recoil за управление на състоянието
- Въведение в Recoil: По-гъвкава алтернатива на Redux
- Обработка на широкомащабно управление на състоянието в компонентите
- Ефективни актуализации на състоянието и атомарно управление на състоянието
Седмица 7: Напреднали анимации в iOS и Android
- iOS (Swift)
- Core Animation: Анимиране на изгледи, слоеве и преходи
- UIKit Dynamics: Създаване на физично-базирани анимации
- Персонализирани преходи и анимации между view controllers
- Android (Kotlin)
- MotionLayout за създаване на сложни анимации
- TransitionManager и преходи на споделени елементи
- Property анимации за мащабиране, завъртане и промени в алфа на изглед
Седмица 8: Анимации и UI/UX в React Native
- Анимации в React Native
- Използване на Animated API и Reanimated за сложни анимации
- Внедряване на жестове и взаимодействия с помощта на React Native Gesture Handler
- Най-добри практики за производителни анимации в React Native
- Създаване на персонализирани UI компоненти
- Изграждане на компоненти за многократна употреба и персонализируеми компоненти в React Native
- Внедряване на адаптивен дизайн с media queries и flexbox
Седмица 9: Интегриране на нативни модули и функции на устройството
- Достъп до нативни функции на устройството
- Напреднала употреба на камера, геолокация, Bluetooth и сензори
- Създаване на нативни модули в Swift и Kotlin за интеграция с React Native
- Интегриране на ARKit за добавена реалност в iOS
- Интегриране на CameraX и ARCore за добавена реалност в Android
- React Native Bridge и нативни модули
- Изграждане на персонализирани нативни модули за интеграция с функционалност, специфична за платформата
- Създаване на Java и Swift мостове за React Native приложения
- Най-добри практики за управление на нативен код в междуплатформена среда
Седмица 10: Тестване и дебъгване на напреднали приложения
- Тестване в iOS (Swift)
- Писане на unit тестове с XCTest и UI тестове за iOS
- Използване на Xcode Instruments за профилиране на производителността и течове на памет
- Работни процеси за непрекъсната интеграция и тестване с Jenkins и CircleCI
- Тестване в Android (Kotlin)
- Напреднали JUnit и Espresso тестове за Android приложения
- Профилиране на производителността и идентифициране на тесни места с помощта на Android Profiler
- Използване на Firebase Test Lab за автоматизирано тестване на множество устройства
- Тестване в React Native
- Unit тестване с Jest и компонентно тестване с Enzyme
- Тестване от край до край с Detox и настройки за автоматизиран тест
- Профилиране на производителността с React Native Debugger и Flipper
Седмица 11: Внедряване на приложения и непрекъсната интеграция
- Внедряване в App Store (iOS)
- Подготовка на приложението ви за изпращане: Сертификати за App Store, provisioning профили и бета тестване с TestFlight
- Използване на Fastlane за автоматизиране на внедряването на iOS приложения
- Управление на App Store Connect и настройка на процеси за преглед на приложения
- Внедряване в Google Play (Android)
- Подготовка на APK и подписването му за изпращане в Google Play
- Автоматизиране на внедряването на Android приложения с Fastlane и Gradle
- Използване на Google Play Console за преглед на приложения и бета тестване
- Настройка на CI/CD Pipelines
- Конфигуриране на Jenkins, GitHub Actions или CircleCI за автоматизирани pipelines за изграждане и внедряване
- Използване на Fastlane за CI/CD работни процеси както за iOS, така и за Android
- Най-добри практики за управление на версиите, номерата на изграждане и каналите за версии
Седмица 12: Capstone проект
- Разработка на финален проект
- Проектиране и разработване на напълно функционално приложение, което включва напредналите функции, научени по време на курса.
- Внедряване на персонализиран UI/UX, напреднали анимации, управление на състоянието, интеграция на нативни модули и API комуникация в реално време.
- Оптимизиране на приложението за производителност и внедряването му в App Store и Google Play.
Обобщение и следващи стъпки
Изисквания
- Солидно разбиране на концепциите за програмиране, особено в Swift, Kotlin и JavaScript
- Предишен опит в изграждането на основни iOS, Android или React Native приложения
- Познаване на дизайн модели като MVC или MVVM и опит с основно управление на състоянието
Аудитория
- Мобилни разработчици
- Програмисти
Отзиви от участници (3)
Всичко е наред.
Adrian Rybka - SEOyon
Курс - Flutter Development Bootcamp with Dart
Машинен превод
Много полезна допълнителна информация
Grzegorz - Comp S.A.
Курс - BLoC Pattern
Машинен превод
Разработване на приложението за потребителска аутентикация и активността кахут (посвятих си времето да абсорбирам училищните лекции :) и е забавно!)
Jhoanne - Pag-IBIG Fund
Курс - .NET MAUI Fundamentals
Машинен превод