План на курса
Въведение
Седмица 1: Преглед на Mobile Development
- Мобилна екосистема и платформи
- Преглед на мобилните операционни системи (iOS и Android)
- Ключови разлики между iOS, Android и междуплатформено развитие
- Популярни магазини за приложения (Apple App Store, Google Play Store)
- Въведение в нативната, хибридната и междуплатформената разработка
- Роден срещу хибрид срещу крос-платформа
- Предимства и предизвикателства на всеки метод на разработка
- Преглед на Swift (за iOS), Kotlin (за Android) и React Native (между платформи)
- Как кодът се превежда в мобилни платформи (JavaСкрипт към собствен код в React Native)
- Programming Основи
- Въведение в концепциите за програмиране (променливи, типове данни, функции, контролен поток)
- Сравнение на Swift, Kotlin и Java синтаксиса на скрипта
- Писане на прости програми с помощта на Swift, Kotlin и Java скрипт
- Настройване на среди за разработка
- Инсталиране на Xcode и Android Studio
- Настройка React Native CLI и Expo
- Стартиране на основни приложения "Hello World" на симулатори и емулатори
Седмица 2: Въведение в Swift, Kotlin и JavaСкрипт
- Swift Programming за iOS
- Променливи, константи и типове данни в Swift
- Изявления за контрол на потока (
if
,switch
, цикли) - Функции и параметри в Swift
- Въведение в интерфейса на Xcode и Swift Playgrounds
- Kotlin Programming за Android
- Променливи, типове данни и функции в Kotlin
- Разбиране на нулевата безопасност на Kotlin.
- Контролен поток и контурни структури
- Въведение в Android интерфейса на Studio и Kotlin Playground
- JavaСкрипт за React Native
- Променливи, константи и контролен поток в JavaScript
- Функции на ES6: функции със стрелки, шаблонни литерали и деструктуриране
- Писане и стартиране на основни Java скриптови програми в React Native с помощта на Expo
Седмица 3: iOS Дизайн на потребителски интерфейс
- UI Element в iOS
- Въведение в UIKit и SwiftUI
- Добавяне и персонализиране на UI елементи като бутони, етикети и текстови полета
- Използване на Interface Builder за проектиране на потребителски интерфейс
- Работа с Storyboards и проектиране на многоекранни потребителски интерфейси
- Автоматично оформление и ограничения
- Разбиране на системата за автоматично оформление
- Използване на ограничения за адаптивни оформления в различни размери на екрана
- Създаване на стекови изгледи и динамично регулиране на UI елементи
- Swift Основи на потребителския интерфейс
- Въведение в декларативния UI дизайн в SwiftUI
- Изграждане на прости UI компоненти с помощта на SwiftUI
Седмица 4: Android Дизайн на потребителския интерфейс
- XML Оформления в Android
- Въведение в XML-базиран дизайн на оформление
- Работа с общи оформления: LinearLayout, RelativeLayout, ConstraintLayout
- Добавяне и персонализиране на UI елементи: бутони, текстови изгледи, изгледи на изображения
- Използване на ConstraintLayout за адаптивни и динамични оформления
- Материален дизайн
- Интегриране на принципите на Material Design (цветове, икони, типография)
- Използване на материални компоненти (бутони, плаващи бутони за действие, карти)
- Внедряване на теми и стил за Android приложения
Седмица 5: React Проектиране на собствен потребителски интерфейс
- React Нативно оформление на Flexbox
- Разбиране на Flexbox за отзивчив дизайн на оформление
- Създаване на оформления, базирани на колони и редове
- Оформяне на UI компоненти със свойства на Flexbox (justifyContent, alignItems и др.)
- React Естествени компоненти
- Работа с основни компоненти като
Text
,View
,TextInput
иButton
- Създаване на интерактивни UI елементи като форми и бутони
- Използване на компонента
ScrollView
за динамично съдържание
- Работа с основни компоненти като
Седмица 6: Обработка на данни в iOS и Android
- iOS Обработка на данни
- Използване на UserDefaults за просто запазване на данните
- Въведение в основните данни за локално съхранение на сложни данни
- Извличане на данни от API чрез URLSession
- Разбор на JSON данни и показването им в потребителския интерфейс
- Android Обработка на данни
- Използване на SharedPreferences за съхраняване на малки количества данни
- Въведение в SQLite и Room Persistence Library за управление на бази данни
- Извличане на данни от API с помощта на Retrofit
- Разбор на JSON и обработка на API отговори
Седмица 7: React Родно състояние Management и API
- Състояние и подпори в React Роден
- Управление на потока от данни в React Native компоненти
- Използване на кука
useState
за управление на състоянието на локалния компонент - Предаване на данни между родителски и дъщерни компоненти чрез подпори
- Извличане на данни в React Native
- Използване на Fetch API и Axios за правене на HTTP заявки
- Показване на извлечени данни в списъци (с помощта на
FlatList
,SectionList
) - Локално запазване на данни с помощта на AsyncStorage в React Native
Седмица 8: Навигация в iOS и Android
- iOS Навигация
- Въведение в контролерите за навигация и управление на множество екрани
- Използване на стъпки за преход между контролери за изглед
- Предаване на данни между контролери за изглед
- Внедряване на TabBar и NavigationBar за структурирана навигация
- Android Навигация
- Работа с Activities и Intents за многоекранни приложения
- Предаване на данни между Activities с помощта на пакети
- Създаване на чекмедже за навигация и BottomNavigationView
- Внедряване на фрагменти за гъвкава UI навигация
Седмица 9: Навигация в React Native
- React Основи на навигацията
- Инсталиране и настройка React Навигация
- Използване на Stack Navigator за преходи на екрана
- Внедряване на Tab Navigator и Drawer Navigator за сложна навигация
- Предаване на параметри между екраните и управление на състоянието на навигация
Седмица 10: Разширени функции
- iOS Разширени функции:
- Основно местоположение и карти
- Accessизвършване на местоположението на устройството с Core Location
- Показване на карти с помощта на MapKit
- Работа с геолокация и проследяване на местоположението на потребителите
- Камера и медии
- Accessкамера на устройството и библиотека със снимки
- Заснемане и показване на изображения с UIImagePickerController
- Съхраняване и извличане на медийни файлове
- Основно местоположение и карти
- Android Разширени функции
- Местоположение и карти
- Използване на Google Maps API за показване на карти и потребителско местоположение
- Accessизготвяне на GPS данни и обработка на геолокация
- Камера и медии
- Използване на CameraX за заснемане на снимки и управление на разрешенията на камерата
- Показване на изображения и обработка на медийно съхранение
- Местоположение и карти
- React Вградени разширени функции
- React Родни карти
- Интегриране на карти с помощта на
react-native-maps
- Работа с услуги, базирани на местоположение (геолокация, картографиране на маршрути)
- Интегриране на карти с помощта на
- Достъп до камера и медия
- Използване на библиотеката React Native Camera за заснемане на снимки
- Accessустройство за съхранение на мултимедия и обработка на файлове
- React Родни карти
Седмица 11: Отстраняване на грешки и тестване
- iOS Отстраняване на грешки и тестване
- Използване на Xcode дебъгер
- Задаване на точки на прекъсване и проверка на променливи в Xcode
- Използване на конзолата за отстраняване на грешки в реално време
- Често срещани проблеми при отстраняване на грешки и как да ги разрешите
- Единично тестване в iOS
- Писане и изпълнение на модулни тестове с помощта на XCTest framework
- Осмиване на обекти и тестване на компоненти на потребителския интерфейс
- Използване на Xcode дебъгер
- Android Отстраняване на грешки и тестване
- Използване на Logcat в Android Studio
- Регистриране и анализиране на грешки с помощта на Logcat
- Отстраняване на грешки Android приложения с точки на прекъсване
- Единично тестване в Android
- Писане на модулни тестове с помощта на JUnit
- Тестване на Android UI компоненти с Espresso
- Използване на Logcat в Android Studio
- React Нативно отстраняване на грешки и тестване
- React Вградени инструменти за отстраняване на грешки
- Използване на Chrome DevTools и React Native Debugger за отстраняване на грешки в реално време
- Конзолни регистрационни файлове и проверка на мрежови заявки
- Единично тестване в React Native
- Писане на модулни тестове с помощта на Jest и Enzyme
- Тестване React Нативни компоненти и управление на тестови случаи
- React Вградени инструменти за отстраняване на грешки
Седмица 12: Внедряване на приложение и проект Capstone
- Внедряване и разпространение
- iOS Изпращане в App Store
- Подготовка на вашето приложение за разпространение (икони, сертификати, профили за осигуряване)
- Използване на App Store Connect за изпращане на приложението за преглед
- Използване на TestFlight за бета тестване
- Android Изпращане в Play Store
- Подготовка на APK и подписване на приложението за разпространение
- Използване на Google Play Console за изпращане и проследяване на приложения
- Разбиране на правилата и указанията на Play Store
- iOS Изпращане в App Store
- Разработка на проект Capstone
- Окончателно разработване на проекта
- Изграждане на напълно функционално приложение по ваш избор
- Включва разширени функции като API повиквания, навигация, медии и местоположение
- Представяне и демонстрация на крайното приложение пред връстници и инструктори
- Окончателно разработване на проекта
Обобщение и следващи стъпки
Изисквания
- Основно разбиране на концепциите за програмиране
- Основни познания по JavaСкрипт
Публика
- Мобилни разработчици
- Програмисти
Oтзиви от потребители (5)
Едуард е страхотен фасилитатор
Zibusiso Ncube - Agricatural Research Council
Курс - Ionic 4 and Angular for Developers
Машинен превод
Любимата ми част е въпрос и отговор със сър. Хосе. Той е много информиран и знае отговорите на нашите въпроси.
John Henry - Toyota Motor Philippines
Курс - .NET MAUI (Intermediate)
Машинен превод
Може би повече упражнения биха били по-добри за учене, но времето беше твърде малко
Gianpiero Arico' - Urmet Spa
Курс - Embedded Linux Systems Architecture
Машинен превод
Miguel's knowledge of the subject was extensive. He made the training easy to understand and the flow was balanced; adding on to each section with new features as needed. He covered everything that was asked and answered each and every question thoroughly. It was a very pleasant experience.
Paul Coaton - SEMPCheck Services
Курс - Flutter Development Bootcamp with Dart
The trainer was enthusiastic, kind, and loved the topic