Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
135 changes: 135 additions & 0 deletions App Dev/Cross Platform Apps/Flutter.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@

## Why learn Flutter ❓


- Flutter is an open-source mobile app development framework developed by Google. It allows developers to create high-performance, cross-platform apps for iOS, Android, and the web using a single codebase.
- Flutter has a bright future due to its ability to develop high-performance, cross-platform apps quickly and efficiently, its large and growing community, its integration with other technologies, and continuous improvement through regular updates and new features.
- Flutter is a versatile mobile app development framework that can be implemented in a range of industries and use cases, including developing cross-platform apps for businesses, creating educational apps for students, building healthcare apps for patients, developing media-rich apps for entertainment, creating secure apps for financial services, developing social networking and communication platforms, and creating travel-related apps. Its customizable widgets, fast development times, and large community make it an ideal choice for building high-performance, engaging, and feature-rich apps.
---
## 🎓 Take Away Skills

After completing this learning path you will be knowledgeable in:
- You'll learn how to integrate Firebase with Flutter to create real-time apps with backend services such as authentication, cloud storage, and database management.
You'll be able to implement user authentication and authorization features to secure your app and protect user data.
- You'll learn how to use Flutter plugins and packages to extend the functionality of your app and integrate with other technologies, such as GraphQL for API queries and mutations.
- You'll learn how to create responsive UI designs using Flutter's flexible layout system, which can adjust to different screen sizes and orientations.
- You'll learn how to leverage Flutter's built-in animations and transitions to create engaging and interactive user experiences.
- You'll be able to deploy your Flutter app to various app stores, such as Google Play Store and Apple App Store, and distribute it to your target audienc

---
## 🛠️ Prerequisites

## 🧑🏻‍💻 Programming Knowledge

- Basic knowledge of programming concepts such as variables, functions, and control structures.
- Familiarity with an object-oriented programming language such as Java, Python, or JavaScript.
- Understanding of mobile app development concepts, such as UI design, user experience, and app architecture.
- Familiarity with the Flutter development environment, which requires knowledge of Dart programming language, Android Studio or Visual Studio Code, and Flutter SDK.

## 📲 Installation and Setup

- Flutter SDK - The main development environment for Flutter. Download it from the official Flutter website: https://flutter.dev/docs/get-started/install

- Android Studio or Visual Studio Code - The IDEs recommended for Flutter development. Download Android Studio from here: https://developer.android.com/studio or Visual Studio Code from here: https://code.visualstudio.com/

- Git - Version control system used for managing source code. Download it from here: https://git-scm.com/downloads
---

## 💡 Learning Session

### Format
### Topics to Learn
1. Flutter Fundamentals
2. Flutter with Firebase
3. Flutter Packages and Plugins
4. Flutter UI/UX Design
5. Flutter Deployment
### Resources to Learn the Mentioned Topics
###### Here are some recommended resources to learn the above topics:

### 1. Flutter Fundamentals
- [Flutter Documentation:]( https://flutter.dev/docs)
- [Flutter Bootcamp with Dart]( https://www.udemy.com/course/flutter-bootcamp-with-dart/)
- [Flutter & Dart - The Complete Guide](https://www.udemy.com/course/learn-flutter-dart-to-build-ios-android-apps/)
- [Flutter Tutorial for Beginners](https://www.youtube.com/watch?v=GLSG_Wh_YWc)
### 2. Flutter with Firebase
- [Firebase Documentation:]( https://firebase.google.com/docs)
- [Firebase Flutter Codelab:](https://codelabs.developers.google.com/codelabs/flutter-firebase/)
- [ Firebase Flutter Course:](https://www.udemy.com/course/flutter-firebase-build-a-complete-app-for-ios-android/)
- [FlutterFire: ](https://firebase.flutter.dev/)
### 3.Flutter Packages and Plugins
- [Flutter Packages:]( https://pub.dev/flutter)
- [Flutter Plugins]( https://flutter.dev/docs/development/packages-and-plugins)
### 4.Flutter UI/UX Design
- [Flutter Documentation:]( https://flutter.dev/docs)
- [Flutter for Designers:](https://flutterfordesigners.com/)
- [Flutter UI Challenges]( https://flutterui.co/)
- [Flutter Layout Cheat Sheet:](https://medium.com/flutter-community/flutter-layout-cheat-sheet-5363348d037e)
### 5.Flutter Deployment
- [Deploying to Android: ](https://flutter.dev/docs/deployment/android)
- [Deploying to iOS]( https://flutter.dev/docs/deployment/ios)
[Flutter App Distribution:]( https://appdistribution.firebase.dev/)
##### Activities
Here are some activities/projects you can work on to apply what you learn:

##### Activity 1: Build a Counter App
Build a simple counter app that increments or decrements the count when the user taps a button.

##### Activity 2: Build a Chat App with Firebase
Build a simple chat app with Firebase Cloud Firestore and Firebase Authentication. Users can sign in, send messages, and receive real-time updates.

##### Activity 3: Use an API Call to Display Data
Use the http package to make an API call and display the results in a ListView.

##### Project: Build a Weather App
Build a simple weather app that displays the current weather conditions using a custom-designed UI.


---
## 🔖 Resource Pool
### Articles/Blogs
Flutter Blog: https://medium.com/flutter
Flutter Community: https://fluttercommunity.dev/
Flutter by Google: https://developers.googleblog.com/flutter/
Flutter Explained: https://flutter-explained.dev/
Flutter Weekly: https://flutterweekly.net/
Reso Coder: https://resocoder.com/category/tutorials/flutter/
Flutter Dev: https://flutter.dev/docs/development
### Videos
Flutter YouTube Channel: https://www.youtube.com/channel/UCwXdFgeE9KYzlDdR7TG9cMw
Flutter & Firebase App Build: https://www.youtube.com/watch?v=knMvKPKBzGE
Flutter Widgets 101: https://www.youtube.com/watch?v=Olj9t1ZBtF0
Flutter Animation Tutorial: https://www.youtube.com/watch?v=I-20MRF1lCQ
### Books
- Flutter in Action by Eric Windmill
- Flutter for Beginners: An introductory guide to building cross-platform mobile applications with Flutter and Dart 2 by Scott Lahteine
- Flutter Cookbook: Recipes for building fast, reliable, and effective applications for mobile and beyond by Wm. Leler
### Newsletters
Flutter Weekly: https://flutterweekly.net/
Flutter Community Newsletter: https://fluttercommunity.dev/newsletter/
Flutter Dev Weekly: https://www.flutterdevweekly.com/
### Communities
Flutter Community: https://fluttercommunity.dev/
Flutter Dev Community: https://flutter.dev/community
Flutter Discord: https://discord.gg/n7Yshp4
Flutter Gitter: https://gitter.im/flutter/flutter
---
## 🚀 Project Pool

- Flutter Login Screen: A basic login screen that allows users to enter their email and password.
Demo project: https://github.com/afgprogrammer/Flutter-Login-Signup-page

- Flutter Todo App: A simple app that allows users to create and manage a list of tasks.
Demo project: https://github.com/asjqkkkk/flutter-todos

- Flutter Calculator App: A basic calculator app that allows users to perform simple arithmetic operations.
Demo project: https://github.com/shubhamhackz/flutter-calculator

- Flutter Quiz App: An app that allows users to take a quiz and displays the results at the end.
Demo project: https://github.com/abuanwar072/Quiz-App-Flutter

- Flutter Messaging App: A basic messaging app that allows users to send and receive messages.
Demo project: https://github.com/abuanwar072/Chat-Messaging-App-Light-and-Dark-Theme