Giới Thiệu Khoá Học

Khóa học được thiết kế nhằm mục đích:

  • Đào tạo và tuyển chọn ứng viên tiềm năng cho vị trí Intern Mobile Developer tại Lecle Vietnam.

  • Cung cấp kiến thức cơ bản, kỹ năng lập trình một ứng dụng mobile hoàn chỉnh cho cả hai nền tảng Android và iOS.

  • Thành thạo cách xây dựng một ứng dụng hoàn chỉnh bằng Flutter có thể đưa lên Google Play, App Store và đủ kiến thức cơ bản để ứng tuyển vào các vị trí Mobile Developer tại các công ty.

  • Biết cách tìm và khắc phục lỗi trong phần mềm, cũng như cách tối ưu hoá ứng dụng mobile.

  • Phát triển kỹ năng làm việc nhóm, kỹ năng thuyết trình, demo sản phẩm

Lịch học và địa điểm:

  • Khai giảng: thứ 2, 19/06/2023

  • Thời gian học: thứ 2 và thứ 4 |18:30 - 21:00

  • Thời lượng: 12 tuần - 60 giờ học

  • Địa điểm học: Devera Academy – Lầu 6, Nhà Văn Hóa Sinh Viên, Khu đô thị ĐHGQ

Đối tượng tham gia:

  • Những ai quan tâm và muốn trở thành Mobile Developer.

  • Những ai quan tâm đến việc phát triển ứng dụng di động bằng một ngôn ngữ cho cả hai nền tảng.

  • Những ai có kinh nghiệm muốn xây dựng các ứng dụng đa nền tảng (iOS + Android) với một ngôn ngữ lập trình duy nhất.

Yêu cầu đầu vào:

  • Ngôn ngữ lập trình cơ bản là một điểm cộng nhưng không bắt buộc phải có.

  • Bạn có thể sử dụng Windows, macOS hoặc Linux để phát triển ứng dụng Android. Tuy nhiên, ứng dụng iOS chỉ có thể được xây dựng trên macOS.

  • Không yêu cầu kinh nghiệm phát triển iOS hoặc Android.

  • Không yêu cầu kinh nghiệm Flutter or Dart -

  • Khóa học này bắt đầu từ con số 0

Công ty Lecle Vietnam HỖ TRỢ 100% HỌC PHÍ cho học viên tham gia đủ từ 80% thời lượng học (hoàn lại học phí sau khóa học)


Bạn Sẽ Học Được Gì

what-learn
  • Thành thạo kỹ năng phát triển một ứng dụng di động hoàn chỉnh với Flutter / Dart

  • Kiến thức, kỹ năng cần có của một Mobile Developer chuyên nghiệp trước khi gia nhập một công ty công nghệ

  • Kỹ năng mềm trong môi trường làm việc

Cấu Trúc Khoá Học

  • Introduce Flutter and Dart language
  • Flutter architecture overview
  • How it works, why we use Flutter, why Flutter use Dart
  • Flutter vs React Native
    Lab:
  • Setup/configure for the Flutter development environment
  • Create the "Hello World" app
  • Introduce the Flutter app structure
  • Variables: Initialization, final
  • Data Types: Numbers, Strings, Enumerated types, Boolean, Arrays
  • Nullable and Non-nullable types
  • Data type operators: Arithmetic, Relational, Type test, Logical, Bitwise and shift
  • Good practices
  • Condition Statement: if, switch
  • Loop: for, while, for-in
  • Assertions
  • The Function type
  • Anonymous functions
  • Optional parameters: Named parameters, Positional parameters
  • Nested functions
  • Using typedefs
  • Good Practices
  • Libraries and Visibility: Encapsulation
  • Constructors: Initializer, Named, Redirecting, Factory, Instance variables initialization
  • Const constructors
  • Getters and setters
  • Operators overload
  • Cloning objects
  • Inheritance: super and constructors
  • Abstract class
  • Interfaces: extends vs implements
  • Mixins
  • The Object class: Comparable
  • Exceptions: on and catch, finally
  • Generic types
  • Type safety
  • Collections: List, Set, Map
  • Operator == and hashCode
  • Transform methods
  • SOLID principles:
         + Single Responsibility Principle
         + Open-closed Principle
         + Liskov Substitution Principle
         + Interface Segregation Principle
         + Dependency Inversion Principle
  • Dependency Injection:
         + Contructor Injection
         + Method Injection
  • Futures: async and await
  • Streams: streams and generators, subscribers, controller
  • Isolates
  • Multiple isolates in Flutter
  • Practices
  • Structure and Tools: Folder structure, pubspec.yaml, hot reload, linter, tree shaking
  • Widgets and State, Keys
  • Basic Widgets: Text, Row, Column, ListView, Container, Stack, Positioned
  • Stateless widget and Stateful widget
  • Good practices
  • Rebuild and optimization: const constructor, prefer widget composition over functions
  • Flutter Architecture:
         + Element & RenderObject
         + Foreign Function Interface
         + Method Channels
  • Practice with widgets: Login screen, To-do list
  • Material: Scaffold, Material Widgets (Button, Dialog)
  • Cupertino: CupertinoPageScaffold, Cupertino widgets
  • Building layouts:
         + Platform support (single OS, Multiple OSes)
         + Responsive UIs (LayoutBuilder, MediaQuery)
         + Using themes
         + Scrolling and contraints
  • Widgets showcase:
       + Material: Drawer, BottomNavigationBar, NavigationRail, TabBar, Stepper, DataTable
       + Cupertino: CupertinoDatePicker, CupertinoActionSheet, CupertinoSegmentControl
  • Show the best practices for building UIs
  • Updating the UI using setState
  • Passing the state with Provider
       + Provider class
       + Consumer class
  • Alternative to setState: BLoC pattern:
       + BlocListener
       + BlocObserver
       + Persisting the state with HydratedBloc
       + Undo & Redo with ReplayBloc
       + The internals of Bloc: Cubit
  • Show the good practices for state management
  • Showcase: create a project for state management
  • Basics of navigation and routing:
       + Create routes
       + Navigate between pages
       + Good practices
  • Passing data between pages and widgets
       + The Navigator class
       + Passing data with Navigator
       + Passing data with Provider
  • Introduction: Other routing techniques
  • Manual internationalization
       + AppLocalization
       + Localization delegate
       + Backward compatibility
  • Internationalizing with intl
       + AppLocalization
       + Localization delegate
       + Plurals and data interpolations
  • Implicit animations
  • The animation library
       + AnimatedWidget
       + AnimationBuilder: Curves, Tweens
  • Custom Animations
  • Showcase: Hero animations, Custom route transitions
  • Good practices
  • Parsing JSON: Manual/Automatic parsing: list, nested objects
  • Parsing XML: parsing strings, building XML strings
  • Working with SQLite and Hive (NoSQL)
  • Testing Flutter apps
       + Unit Test
       + Testing asynchronous code and streams
       + Mocking dependencies
       + Unit testing blocs
  • Widget Test: testing blocs and providers
  • Integration testing
  • Testing performance: DevTools
       + Using the Flutter inspector
       + Using Timeline view, Memory view, Network view, Logging view
       + Monitoring widget rebuilds
  • Making HTTP requests: GET, POST
  • Working with data: download, upload
  • Advanced REST API calls: model class, parsing JSON, HTTP client
  • Socket: Handle data and realtime between client and server
  • Good practices
  • Lab: Create an app using REST API, Flutter and ChatGPT
  • Assets and images
  • Working with images: loading from network
  • Scalable vector graphics: working with svg files, loading from network
  • Audio and video files: playing video and listening to music
  • Homework: Music app
  • Forms and validation
       + Keyboard and overflows
       + Getting the text from a text field
       + Constraining the input
  • Gestures
       + Swipe to dismiss
       + Dragging items
  • Camera: taking a picture
  • Working with sensors
  • Working with Geolocation
  • Platform-specific packages
       + Battery level
       + Device info
       + Internet connectivity
       + Shared preferences
  • Installation
  • Using Firestore as backend:
       + Building the backend, frontend
       + Working with data
       + Transactions and batches
  • Monetizing your apps with AdMob
       + Ad banners
       + Rewarded video ads
  • Flutter & Google ML Kit
       + Face Detection, Object Detection and Tracking, Pose Detection
       + Image Labeling
       + Bar-code scanning
       + Text Regconition
  • Push Notifications with FCM: handling and sending push notifications
  • Authenticating with Firebase
  • Publishing packages on pub.dev
       + Creating the package
       + Documenting the source code
       + Reviewing and publishing
       + Scores and good practices
       + Verified publishers and Flutter Favorites
  • Publishing apps on Store
       + Releasing Android apps
       + Releasing iOS apps
       + Splash screens
       + Doing CI/CD for Flutter: Github actions
  • Preparing the project: folder structures and basic setup
  • State management and model classes
       + Authentication bloc
       + Credential bloc
       + Localization files
  • Building the UI
       + Creating the login form
       + Creating the welcome screen
  • Testing your code
       + Unit test
       + Widget test
  • FINAL PROJECT: DEMO & PRESENTATIONS

    Giảng Viên Là Những Ai

    teacher

    Hung Nguyen

    teacher

    Hơn 12 năm kinh nghiệm phát triển và quản lý các ứng dụng mobile từ các công ty Hàn Quốc, Nhật Bản, Singapore, Âu-Mỹ

    Các Khoá Học Khác

    Xem Tất Cả Khoá Học