[LG Uplus] Khóa học lập trình ứng dụng cơ bản (Flutter)
Tạo cả ứng dụng iOS và Android chỉ với một lần viết mã! Khóa học thoát kiếp người mới bắt đầu với Flutter của Code Factory! Xây dựng nền tảng vững chắc thông qua các lý thuyết chi tiết và các dự án thú vị!
Tự tay thực hiện 10 dự án! 💁♀️💁♂️ Học dựa trên lý thuyết và tìm hiểu cách triển khai các tính năng đa dạng.
Đã hoàn tất tương thích với Flutter 3.0!!
Tính đến ngày 18 tháng 7 năm 2022, tất cả các bài giảng đều tương thích với Flutter 3.0! Vì phiên bản 3.0 vẫn chưa hoàn toàn ổn định nên đôi khi có một số bạn gặp vấn đề về thiết lập môi trường. Nếu bạn đã thử các giải pháp bổ sung bên dưới mà vẫn còn lỗi, tôi sẽ hỗ trợ cài đặt từ xa!
Làm quen với Android Studio và tìm hiểu cách vẽ UI của ứng dụng bằng Flutter
Thử sử dụng Text widget
Thử thay đổi màu nền
Thử thay đổi màu chữ
#2 Splash Screen
Cách tạo Splash Screen đơn giản, đóng vai trò là trang đầu tiên của mọi ứng dụng
Sử dụng hình ảnh Asset
Sử dụng widget Circular Progress Indicator
Tìm hiểu cách sắp xếp widget bằng cách sử dụng widget Column
#3 Web app Blog
Sử dụng công nghệ Web View để đóng gói các trang web hiện có thành ứng dụng
Sử dụng gói mã nguồn mở
Thay đổi cài đặt Native theo từng nền tảng
Sử dụng widget WebView
Cấp quyền Javascript
Mở giao thức HTTP
#4 Khung ảnh điện tử
Tạo khung ảnh điện tử có thể tự động cuộn nếu để yên và có thể vuốt trực tiếp
Sử dụng widget Page View
Thực thi hàm định kỳ bằng lớp Timer
Thực hành sử dụng Stateful Widget trong thực tế
#5 Ngày đầu mình gặp nhau U&I
Tạo ứng dụng đếm ngày kỷ niệm (D-Day) có thể sử dụng cùng với người yêu
Áp dụng Font chữ
Sử dụng Date Picker
Sử dụng thực tế lớp Date Time
Cách sử dụng Theme trong Flutter
Sử dụng Cupertino Dialog
#6 Trình tạo số ngẫu nhiên
Tạo ứng dụng mỗi khi nhấn nút sẽ tạo ra 3 số ngẫu nhiên nhỏ hơn hoặc bằng số đã chỉ định
Tạo số ngẫu nhiên
Điều hướng đơn giản và truyền nhận dữ liệu
Sử dụng widget Slider
Render widget và dọn dẹp mã nguồn sử dụng lập trình Functional
#7 Trình phát video
Xây dựng ứng dụng phát video
Sử dụng Stack widget
Sử dụng thư viện Image Picker
Sử dụng thư viện Video Player
Tạo bộ điều khiển video bao gồm phát, tạm dừng, tua lại 3 giây và tua đi 3 giây
#8 Hôm nay cũng đi làm
Sử dụng Google Maps để xây dựng một dịch vụ dựa trên vị trí đơn giản
Thiết lập và sử dụng Google Maps
Hiển thị vị trí của tôi trên bản đồ bằng cách sử dụng dịch vụ định vị
Tính khoảng cách giữa các vị trí cụ thể
Hiển thị dấu mốc (marker) trên bản đồ
Hiển thị hình tròn trên bản đồ
Di chuyển camera đến một vị trí cụ thể
Sử dụng Material Dialog
#9 LIVE- Gọi video
Xây dựng ứng dụng gọi video sử dụng Agora API
Xây dựng tính năng gọi video sử dụng Agora API
Thử nghiệm sử dụng Box Shadow
#10 Lịch lập biểu
Tạo ứng dụng lịch lập biểu có thể lưu trữ dữ liệu dài hạn
Sử dụng SQLite với gói Drift
Học các câu lệnh SQL cơ bản (select, insert, update, delete, join)
Sử dụng Bottom Sheet
Sử dụng widget Wrap
Sử dụng gói Table Calendar
Thực hiện hiệu ứng xóa bằng widget Dismissible
Tự động phát hiện thay đổi dữ liệu thông qua Stream
#11 Ứng dụng bụi mịn
Học cách thực hiện yêu cầu mạng bằng giao tiếp HTTP!
Yêu cầu HTTP sử dụng gói Dio
Thử nghiệm sử dụng Open API của chính phủ
Sử dụng cơ sở dữ liệu Hive NoSQL
Trải nghiệm hỗ trợ ngoại tuyến và bộ nhớ đệm (caching)
Sử dụng Widget Drawer
Thực hành sử dụng CustomScrollView
Không thể bỏ qua phần lý thuyết! ✍
Stateful Widget
Bạn sẽ được tìm hiểu về Vòng đời (Life Cycle) của Stateful Widget và trực tiếp thực hành để kiểm tra xem các hàm tương ứng với mỗi Vòng đời được thực thi khi nào.
Row and Column Tìm hiểu về các tham số của widget Row và Column, những widget được sử dụng nhiều nhất khi sắp xếp các widget trong Flutter.
Date Time Tìm hiểu cách xử lý dữ liệu liên quan đến ngày và giờ bằng lớp Date Time, đồng thời học cách thao tác với Date Time thông qua Duration.
Const Constructor Hãy cùng tìm hiểu cách loại bỏ những dòng cảnh báo màu vàng xuất hiện mỗi khi viết mã bằng cách sử dụng Const Constructor, và tìm hiểu lý do tại sao việc sử dụng Const Constructor lại giúp cải thiện hiệu suất của ứng dụng Flutter.
Buttons Học cách sử dụng và tùy chỉnh các loại nút Elevated Button, Text Button và Outlined Button được cung cấp mặc định trong Flutter.
Navigation Tìm hiểu về các chức năng khác nhau của Navigation để di chuyển giữa các màn hình và học cách truyền dữ liệu giữa các màn hình.
Stream Builder và Future Builder Tìm hiểu về Stream Builder và Future Builder, phương pháp hiệu quả và dễ dàng nhất để quyết định giao diện người dùng (UI) dựa trên kết quả của các yêu cầu bất đồng bộ (async).
Buy vs Build Tìm hiểu về cách quyết định xem việc tự xây dựng một tính năng cụ thể hay mua bản quyền sử dụng sẽ tốt hơn.
Scrollable Widgets Hãy cùng tìm hiểu về các widget cho phép cuộn trong Flutter nhé!
Sử dụng Flutter framework để tự mình tạo ra một ứng dụng đơn giản 📖
Flutter vs React Native Google Trends
Flutter đã là một trong những framework đa nền tảng mạnh mẽ đang được vô số doanh nghiệp sử dụng làm nền tảng chủ lực. Như có thể thấy trên biểu đồ, nó đang tăng trưởng nhanh chóng và vượt qua React Native - vốn là cái tên thống trị trong một thời gian dài.
Khóa học này được thiết kế với sự kết hợp hợp lý giữa các dự án thực hành và lý thuyết, giúp những người mới bắt đầu có thể tiếp cận một cách nhẹ nhàng và thân thiện, đồng thời nắm bắt được cả sự thú vị lẫn chiều sâu kiến thức. Bằng cách thiết kế các tình huống thực tế, khóa học được cấu trúc theo hình thức giúp người học hiểu rõ lý do tại sao cần tiếp thu kiến thức đó trong quá trình thực hiện dự án, từ đó có thể đào sâu hơn vào các lý thuyết chuyên sâu.
Tổng hợp đánh giá khóa học 📜
Ngay cả những người mới bắt đầu lập trình hay những người mới làm quen với Flutter, sau khi nghe bài giảng này, sẽ có được sự tự tin với Flutter để có thể tự mình phát triển các ứng dụng đơn giản và đạt đến trình độ có thể tự trau dồi kiến thức trên mức sơ cấp. Kênh YouTube Code Factory cũng có rất nhiều nội dung bổ ích!
Giao tiếp tốt nhất 🧑🏼🏫
Tôi giao lưu với học viên và giải đáp thắc mắc thông qua livestream trên YouTube hàng tuần!
Nếu bạn muốn nhận thông báo đẩy cho các buổi livestream trên YouTube, hãy nhấn đăng ký kênh YouTube Code Factory dưới đây nhé!
Cuốn sách Lập trình Flutter của Code Factory - Must Have là cuốn sách do chính tôi dành nhiều thời gian tâm huyết để biên soạn! Nội dung có phần trùng lặp với khóa học sơ cấp, nhưng cũng có những bài giảng về Firebase và quảng cáo mà khóa học sơ cấp không có! Tôi khuyên dùng cuốn sách này cho những ai yêu thích EBook hoặc sách giấy! Bạn có thể tìm thấy sách tại các nhà sách lớn như Kyobo Book, Yes24, Aladin! Vui lòng nhấp vào hình ảnh bên dưới để di chuyển!
Các lưu ý khác ✔️
Giải đáp trước các câu hỏi thường gặp 💬
Q. Tại sao nên học Flutter?
Flutter là một framework phát triển ứng dụng đa nền tảng. Ban đầu, ứng dụng iOS và Android phải được phát triển bằng các ngôn ngữ và framework khác nhau, nhưng với Flutter, bạn có thể phát hành trên cả hai nền tảng chỉ với một mã nguồn duy nhất. Do đó, bạn có thể tiết kiệm được rất nhiều chi phí tài chính và thời gian để phát triển ứng dụng. Ngoài ra, vì đây là framework do Google tạo ra và đang được Google thúc đẩy mạnh mẽ dạo gần đây, nên đây là một framework rất đáng kỳ vọng trong tương lai và rất tốt để học hỏi.
Q. Học Flutter có nhất thiết là tốt hơn so với React Native hay Native không?
Mọi framework đều tùy theo tình huống và mục đích mà có những ưu nhược điểm riêng, nên câu trả lời cho những loại câu hỏi này luôn là 'KHÔNG'. Flutter có thể phát hành ứng dụng trên cả hai nền tảng iOS và Android rất nhanh chóng chỉ với một mã nguồn duy nhất, nhưng so với Native thì các thư viện vẫn còn thiếu thốn và độ hoàn thiện vẫn kém hơn một chút. React Native có ưu điểm là sử dụng ngôn ngữ Javascript, một trong những ngôn ngữ phổ biến nhất thế giới, và vì đã ra đời từ lâu nên hiện tại nó vẫn được sử dụng phổ biến hơn Flutter.
Q. Tôi chưa từng học lập trình bao giờ thì có thể theo học được không? Tôi không phải dân chuyên ngành thì có ổn không?
Có rất nhiều người đã thành công trong việc lập trình lần đầu tiên trong đời thông qua các video trên YouTube của tôi. Dù không phải là Flutter, mọi ngôn ngữ lập trình đều có rào cản gia nhập đáng kể đối với người mới bắt đầu, nhưng trong bài giảng này, tôi đã nỗ lực rất nhiều để hạ thấp rào cản đó xuống mức tối đa. Trước tiên, hãy xem bài giảng về ngôn ngữ Dart mà tôi đã công khai miễn phí để kiểm tra độ khó, và nếu thấy khó khăn, hãy nhận sự trợ giúp từ cộng đồng chính thức của Code Factory.
Nếu bạn mua khóa học Flutter, bạn có thể tham gia vào kênh Flutter Premium trên máy chủ Discord của Code Factory! Sau khi tham gia máy chủ Discord, hãy gửi cho tôi email bạn đã dùng để mua khóa học qua tin nhắn, tôi sẽ đăng ký cho bạn vào kênh Premium! Khi tham gia kênh Premium, tất cả các câu hỏi và đáp của bạn sẽ được ưu tiên trả lời!
Q. Đây có phải là bài giảng đã hoàn tất sản xuất không?
Hiện tại, cấu trúc bài giảng phù hợp với mục tiêu thoát kiếp người mới. Tôi có kế hoạch sản xuất bài giảng Flutter chia thành ba cấp độ: sơ cấp, trung cấp và cao cấp; trong đó các nội dung về UI, cách sử dụng các thư viện phổ biến đơn giản, v.v. đều sẽ được thêm vào khóa học sơ cấp. Vẫn còn rất nhiều kiến thức tôi muốn truyền tải đến các bạn, vì vậy hãy cùng mong chờ nhé!
Q. Có cần phải có máy Mac không?
Bạn có thể theo dõi bài giảng bằng máy tính Windows, nhưng việc build ứng dụng iOS là không thể. Lý do là vì Apple đã thiết kế để ứng dụng iOS chỉ có thể được build trên Mac, hệ điều hành của Apple. Flutter có tính nhất quán đa nền tảng rất tốt, nên dù bạn dùng máy tính Windows để lập trình trong khi nhìn màn hình Android, bạn vẫn có thể yên tâm rằng sau này khi build cùng một mã nguồn đó trên iOS, kết quả sẽ cho ra cùng một ứng dụng. Nếu bạn muốn phát hành ứng dụng, tôi khuyên bạn nên mua ít nhất là một chiếc MacBook cũ có tương thích với Flutter.
Q. Cấu hình máy tính có cần mạnh không?
Vì việc chạy trình giả lập (simulator/emulator) giúp quá trình phát triển thuận tiện hơn, nên nếu cấu hình máy tính quá thấp, việc thực thi có thể bị chậm. Nếu cấu hình máy tính thấp, tôi khuyên bạn nên sử dụng thiết bị thực để lập trình! Cấu hình yêu cầu có thể thay đổi theo thời gian nên tôi sẽ để lại các liên kết dưới đây. Yêu cầu cấu hình Windows / Yêu cầu cấu hình Mac / Yêu cầu cấu hình Linux
Q. Không cài đặt được Flutter.
Để trở thành một nhà phát triển giỏi, khả năng tự mình giải quyết vấn đề là rất quan trọng, vì vậy hãy cố gắng hết sức và nếu vẫn không được, hãy liên hệ qua 💬 Code Factory Kakao Open Talk nhé!
Q. Video có vấn đề.
Đối với các thắc mắc liên quan đến việc phát video và kết nối internet, vui lòng liên hệ với Inflearn. Ngoài ra, nếu có phần nào thứ tự video bị sai hoặc do biên tập chưa tốt dẫn đến khó hiểu, hãy liên hệ ngay với tôi qua Open Talk. Tôi sẽ ưu tiên cải thiện hàng đầu và tiến hành tải lên video mới! Mặc dù tôi đã kiểm tra nhiều lần, nhưng do quản lý quá nhiều video nên có thể sẽ có sai sót.
Q. Nội dung bài học bao gồm đến cấp độ nào?
Tôi đã nỗ lực đưa vào tất cả những kiến thức cần thiết để tạo ra UI trong Flutter. Ngoài ra, tôi cũng có kế hoạch bao gồm cả quản lý cơ sở dữ liệu frontend đơn giản, yêu cầu mạng, và quản lý trạng thái cơ bản.
Các nội dung dự kiến bổ sung hiện tại
Bài giảng liên quan đến yêu cầu HTTP (Sử dụng Dio và Retrofit)
Quản lý dữ liệu và caching đơn giản bằng Hive
Quản lý trạng thái đơn giản bằng Provider
Các gói quản lý trạng thái phổ biến khác ngoài gói Provider sẽ được đề cập trong khóa học trung cấp! (BloC, GetX, v.v.) Ngoài ra, nếu có kiến thức hay kỹ thuật nào mà bạn muốn tôi thực hiện, hãy gửi cho tôi thông qua các kênh giao tiếp khác nhau nhé. Tôi sẽ tích cực xem xét!
Q. Không có bài giảng về cách phát hành ứng dụng lên Play Store và App Store sao?
Nội dung này dự kiến sẽ được thêm vào khóa học dành cho người mới bắt đầu. Nếu bạn muốn thử phát hành ứng dụng trước khi bài giảng ra mắt, vui lòng kiểm tra hướng dẫn trên trang web chính thức của Flutter. Phát hành ứng dụng Android / Phát hành ứng dụng iOS
Các hình ảnh mà tôi cung cấp trong bài giảng là những hình ảnh tôi đã trực tiếp mua bản quyền. Tôi đã mua quyền được tạo ra các tác phẩm sáng tạo và phân phối chúng, nhưng các bạn tuyệt đốikhông được phân phối lại các hình ảnh này cho người khác hoặc lên internet! Các vấn đề pháp lý có thể phát sinh do vi phạm bản quyền, vì vậy vui lòng không sử dụng các hình ảnh này ngoài mục đích học tập.
(3) Cách đặt câu hỏi
Cách nhanh nhất để nâng cao kỹ năng khi học lập trình là nắm vững cách đặt câu hỏi đúng và chính xác. Do đặc thù của lập trình, rất khó để xem xét toàn bộ mã nguồn. Vì vậy, nếu bạn đăng toàn bộ mã của widget gặp lỗi rồi nói rằng "Cái này không chạy!" thì tôi sẽ rất khó để trả lời cho bạn. Khi đặt câu hỏi, nếu bạn sắp xếp và truyền đạt rõ ràng theo 3 bước dưới đây, chúng ta sẽ có thể giao tiếp và giải đáp nhanh hơn nhiều!
1️⃣ Theo suy nghĩ của bạn, nó nên hoạt động như thế nào 2️⃣ Hiện tại nó đang hoạt động như thế nào 3️⃣ Vị trí chính xác của đoạn mã và vấn đề gì đang xảy ra (sẽ rất tuyệt nếu có thêm ví dụ👏)
(4) Các bài giảng đã được xác nhận bổ sung
Ứng dụng đo bụi mịn sử dụng API của chính phủ (Hoàn thành)
Quản lý trạng thái bằng gói Provider (Tham khảo bài giảng trung cấp Riverpod của Code Factory [Tương thích 100% với Provider])
🏆 Sách <> đứng thứ 23 trong danh sách Bán chạy nhất lĩnh vực Máy tính/IT tại Kyobo Book Centre nửa đầu năm 2023> Ranked 23rd Best Seller in the Computer/IT category at Kyobo Book Centre for the first half of 2023