Tạo bởi - Hi Admin
Trong bài viết này VNFS sẽ chia sẻ với các bạn một số khóa học Flutter miễn phí mà chúng ta có thể tham khảo.Dart Programming Tutorial – Full CourseTrước tiên, nếu muốn bắt đầu với Flutter bạn phải biết đến ngôn ngữ Dart. Flutter sử dụng Dart cho việc phát triển app của mình.Flutter Course – Full Tutorial for Beginners (Build iOS and Android Apps)Một khóa học ở freeCodeCamp về Flutter cho người mới bắt đầu. Đây cũng là một trong những khóa học mà tôi được giới thiệu khi bắt đầu đến với Flutter. Nó rất hiệu quả và chắc chắn sẽ rất hữu ích cho bạnLearn Flutter, Google’s groundbreaking multi-platform mobile development framework, to create apps for Android and iOS.Trong khóa học này, Nick Manning đến từ Flutter Crash Course dạy bạn cách để đến với Flutter một cách nhanh nhất và hiệu quả nhất, Nick đã là một kỹ sư Flutter từ những năm 2017 và anh ấy hiểu rất sâu về nó. Khóa học sẽ giúp bạn hiểu sâu về thực thế, hiểu rõ vấn đề một cách trực quan nhất, từng bước và từng bước.Flutter Crash CourseTrong khóa học này chúng ta sẽ được tìm hiểu cách để xây dựng một native mobile app. Định nghĩa Flutter là gì, cách để cài đặt, tạo widgets, stateless and stateful…Flutter Tutorial for BeginnersBạn sẽ khám phá ra cách để sử dụng Flutter để tạo app android và ios. Học được tất cả mọi thứ về widgets, packages, assets & asynchronous code để tạo app “Giờ thế giới”.Flutter & Firebase App BuildLại một playlist nữa về Flutter và Firebase được tạo bởi The Net Ninja. Khi tôi muốn sử dụng firebase cho ứng dụng đầu tiên của mình thì nó chính là sự lựa chọn hợp lý. Khóa học rất đầy đủ và đã giúp tôi hiểu thế nào để tích hợp Firebase vào Flutter.Trong khóa học này bạn sẽ hiểu được cách sử dụng Firebase Firestore (Real- time database) và firebase Authentication. Playlist này dành cho những người đã có một chút kiến thức với FlutterReso CoderMột kênh Youtube chuyên dụng dành riêng cho Flutter. Reso Coder đã tạo ra rất nhiều tutorials để giải thích cách hoạt động của Flutter. Một số tool mà bạn có thể sử dụng cùng Flutter rất rõ ràng đơn giản và tất nhiên bạn có thể tích hợp nó vào dự án của mình.Flutter đang làm thay đổi diện mạo của việc phát triển ứng dụng. Đừng để bị bỏ lại phía sau. Hãy học cách để phát triển những ứng dụng cross-platform dành cho di động và web.FilledStacksMột kênh Youtube chuyên về Flutter. Bạn sẽ khám phá ra tất nhiều tut về Flutter như là Firebase, UI, cấu trúc hoạt động. Và tất nhiên nó có cả những tut về web và mobile. Học cách để xây dựng một sản phẩm chất lượng từ Flutter.Code With AndreaKhóa học về Flutter. Các video bao gồm tất cả những thứ về Flutter bao gồm về cách quản lý các sate, giao diện, kiểm thử và nhiều những thứ khác. Kênh này sẽ giúp bạn trở thành một lập trình viên Flutter giỏi hơn.Xem thêm: Triển khai BLoC trong Flutter
Xem chi tiếtPublished - Thứ Ba, 22 Feb 2022
Tạo bởi - Hi Admin
Flutter là nền tảng phát triển ứng dụng đa nền tảng cho iOS và Android do Google phát triển. Flutter sử dụng ngôn ngữ DART cũng do Google phát triển và flutter cũng đã được sử dụng để tạo ra các ứng dụng native cho Google.Bên dưới là lộ trình học flutter cho các bạn tham khảo. Có thể xem thêm video về học flutter của VNFS tại đây: Triển khai BLoC trong FlutterProgramming LanguageDartIDE for developmentVsCodeAndroid StudiointellijUser InterfaceWidgetsstatefull widgetstateless widgetaccessibilityInherited widgetThemingLocalizationStyleMaterialCupertionAssetsfontsimagessvgaudiovideoStatic User InterfaceViewText,Image,button raised button etcViewGroupContainer, Row, Column, Stack, Expanded, ConstrainedBoxDynamic User InterfaceListViewGridViewExpansionTitleAnimationAnimatedWidgetAnimatedBuilderAnimationControllerCurvedAnimationHeroTransformOpacitySotrageshared preferencefile storagesqlite3rd party libararieshttpdioget_itcached_network_imageFlutter_webview_plug-infont_awesome_flutterSQFLiterxdartbloc_patternBehavior ComponentsPermissionLocal NotificationPush NotificationDownload ManagerMedia PlaybackPreferenceSharingState managementsetStateProviderReduxBLoCMobXQuality AssuranceFirebaseCrashlyticsApp distributionAnalyticsGoogle play beta testsTestFlightApp CenterVersion ControlGitGithubBitbucketGitlabFirebaseFirebase AuthFirebase databaseFirebase StorageFirebase MessagingNative IntegrationAndroidAndroid StudioJavaKotlinApp SigingGoogle Play StoreIn App PurchaseiosXcodeSwiftObjective-CApple CertificationAppStoreKeep Learning and try to improve your code.Xem thêm:Một số khóa học Flutter miễn phí nên họcĐăng ký Youtube VNFS:VNFS Youtube
Xem chi tiếtPublished - Thứ Ba, 22 Feb 2022
Tạo bởi - Hi Admin
1. Giới Thiệu về GetX trong FlutterTrong series bài viết này chúng ta sẽ tìm hiểu về GetX trong Flutter. Hiện nay có rất nhiều thư viện State Management như MobX, BLoC, Redux, Provider, v.v. GetX cũng là một micro framework mạnh mẽ cho Flutter. Nó kết hợp State Management, dependency injection và route management một cách nhanh chóng và thiết thực.Những ưu điểm của Get – State managerLink fanpage học Flutter để cập nhật thông tin mới nhất: facebook.com/VNFSChỉ update những widget cần thiết.Sử dụng ít bộ nhớ hơn so với các kiểu quản lý state khác.Chỉ cần sử dụng một component duy nhất là GetWidget thay vì lựa chọn StatefulWidget hay StateLessWidgetViệc tổ chức cấu trúc project sẽ cực kỳ clear, phần code logic được tách hẳn hoàn toàn so với UI.Tối ưu hoá bộ nhớ, Get sẽ tự động thu dọn những component không cần thiết.2. Nguyên lý hoạt độngVề nguyên lý hoạt động của Get. Những bạn nào đã quen làm việc với Rx chắc sẽ hiểu được nguyên lý hoạt động của nó một cách dễ dàng. Về cơ bản Get hoạt động cũng giống như Rx, cũng có các Observable và các component để lắng nghe thay đổi của Observable.3. Cài đặtThêm vào file pubspec.yaml:dependencies: get:Import vào những file cần sử dụng:import 'package:get/get.dart';
Xem chi tiếtPublished - Thứ Ba, 22 Feb 2022
Tạo bởi - Hi Admin
1. Tạo Controller kế thừa từ GetxControllerTạo một file mới đặt tên controller.dart sau đó thêm mã vào file vừa tạo như sau: class Controller extends GetxController{ var count = 0.obs; @override void onInit() { super.onInit(); } increment() => count++; @override void onClose() { super.onClose(); } }2. Khởi tạo Controller trong StatelessWidgetCó một lưu ý khi chúng ta sử dụng GetX các bạn sẽ không cần quan tâm đến StatelessWidget hay StateFulWIdget nữa. Cách để chúng ta khởi tạo Controller trong StatelessWidget như sau:final Controller controller = Get.put(Controller());3. Gắn Obx vào widget cần thay đổiVà trong giao diện người dùng, khi bạn muốn hiển thị giá trị đó và cập nhật màn hình bất cứ khi nào giá trị thay đổi, chỉ cần thực hiện điều này:Obx(() => Text("${controller.count)}"));File giao diện đầy đủ sẽ như sau:class Home extends StatelessWidget { final Controller controller = Get.put(Controller()); @override Widget build(context) { return Scaffold( body: Center( child: Obx(() => Text("Clicks: ${controller.count}")) ), floatingActionButton: FloatingActionButton(child: Icon(Icons.add), onPressed: c.increment)); } }
Xem chi tiếtPublished - Wed, 23 Feb 2022
Tạo bởi - Hi Admin
1. Định tuyến không sử dụng tên routeĐịnh tuyến dễ dàng hơn với GetX. Chúng ta cần thay MaterialApp thành GetMaterialApp ở main.dartGetMaterialApp( // Before: MaterialApp( home: MyHome(), )Để chuyển đến một trang mới chúng ta sử dụng phương thức sau:Get.to(NextScreen());Đóng snackbars, dialogs, bottomsheets, hay bất cứ thứ gì có thể đóng bằng Navigator.pop(context) thì trong GetX chúng ta sử dụng cú pháp:Get.back();Điều hướng đến trang mới và không cho quay về trang hiện tại (Thường được sử dụng cho SplashScreen, Login,..):Get.off(NextScreen());Đến trang mới và xóa hết các trang cũ:Get.offAll(NextScreen());Đến trang mới và nhận dữ liệu trả về từ trang đó ngay khi back về trang hiện tại:var data = await Get.to(Payment());Trả dữ liệu về trang trước theo cú pháp:Get.back(result: 'success');2. Định tuyến sử dụng tên routeĐối với chuyển trang bằng tên thì cũng tương tự các hàm trên nhưng có thêm hậu tố Named như: toNamed, offNamed, offAllNamed, …void main() { runApp( GetMaterialApp( unknownRoute: GetPage(name: '/notfound', page: () => UnknownRoutePage()), initialRoute: '/', getPages: [ GetPage(name: '/', page: () => MyHomePage()), GetPage(name: '/second', page: () => Second()), ], ) ); }3. Truyền dữ liệu cho trang mới3.1 Truyền dữ liệu với arguments:Get.toNamed("/NextScreen", arguments: 'Get is the best');print(Get.arguments); //print out: Get is the best3.2 Dynamic urls linksDynamic urls khá quen thuộc đối với Web Developer. GetX hỗ trợ nó cho Flutter. Ta có thể sử dụng theo syntax thuộc tính:Get.offAllNamed("/NextScreen?device=phone&id=354&name=Enzo");print(Get.parameters['id']); // out: 354 print(Get.parameters['name']); // out: EnzoHoặc có thể sử dụng theo cấu trúc định sẵn như ví dụ bên dưới:GetPage( name: '/profile/:user', page: () => UserProfile(), ),Gửi dữ liệu với route được định nghĩa ở trên.Get.toNamed("/profile/34954");Nhận dữ liệu tương tự như ở trên.print(Get.parameters['user']); // out: 3495
Xem chi tiếtPublished - Wed, 23 Feb 2022
Thứ Ba, 26 Jul 2022
Mon, 27 Tháng sáu 2022
Thứ Ba, 01 Mar 2022
Viết đánh giá công khai