
Explore Flutter, a cross-platform SDK that lets you build a single app for Android and iOS using Dart. Discover widgets, hot reload, and ahead-of-time compilation for fast, modern UIs.
Install Android Studio across Mac, Windows, or Linux, download the program, and install Flutter and Dart plugins to start Android app development with integrated tools.
Download and unzip the Flutter SDK, move it to a secure location, run flutter doctor to detect issues, and set up an IDE with Flutter and Dart plugins.
Explore Android Studio with the Flutter plugin, set up a new Flutter project, and navigate the interface, project structure, and essential tools to run and debug on an emulator.
Set up and run your first flutter app using an emulator or Android virtual device, explore API level, skins, and the hot reload feature.
Explore how Flutter apps work by examining main.dart, understand stateless vs stateful widgets, and learn how setState triggers UI updates in a sample Flutter app.
You will explore the Dart language used to create apps with Flutter.
Learn how variables act as placeholders for data, with names, types, values, and defaults, and distinguish declaring from initializing across integers, doubles, strings, and booleans.
Demonstrate variables by building a game character, declaring string, integer, double, and boolean types, and applying dynamic, final, and constant concepts with console prints.
Explore variable operators in Dart, covering arithmetic (binary and unary), assignment, equality, the ternary, and logical operators, with code examples and practical demonstrations.
Demonstrates arithmetic, unitary, assignment, comparison, ternary, negation, and logical operators with examples; shows type rules, string concatenation, and console output.
Learn to create and manipulate typed and generic lists, access and set elements by index, and use common operations like length, range, insert, contains, first, last, and index.
Explore lists in code with a simple inventory example, learn to create a string list, access items by index, reset the list, and apply range, set, and for each operations.
Learn how maps, or dictionaries, store key-value pairs and are accessed by keys, with initialization via curly braces, and updating values, including handling missing keys.
Extend the inventory from a list to a map, mapping item names to counts, and learn to access, update, and add items while handling missing keys.
Explore functions as defined blocks of code with a name, body, parameters, and a return type; learn to call them to execute tasks and manage inputs and outputs.
Explore how to define and call functions in Flutter, with and without parameters and return types, using a move function to update a character's position and print results.
Learn the basics of control flow in Dart and how true/false tests drive code. Use if, else if, else, and switch statements to branch logic with exhaustive cases.
Explore control flow with if-else if and switch statements through a game character example, tracking current, halfway, and end positions and printing dynamic messages.
Explore while and for loops in Dart, understanding condition-driven repeated execution and how break and continue shape loop behavior with arrays and do while concepts.
Demonstrate while and for loops with break and continue, using a video game character to advance position and print steps left, then build an inventory string from items.
Explore classes and objects in an object-oriented language, learning how objects have state and behavior, define fields and methods, and use constructors to instantiate objects.
Explore how to define a simple game object as a class, implement a constructor, create instances, manage x and y position state, and implement a move method to update position.
Master inheritance by using extends to create subclasses from a superclass, override methods, and apply super for custom behavior, enabling scalable game objects and reusable code.
Demonstrates inheritance in game app by extending a game object to a game character, using super constructor for x and y, and adding name and health properties while overriding move.
Review the Dart language basics: variables, operations, lists and maps, functions, control flow, loops, objects and classes, and inheritance, plus guidance on next steps with Flutter tutorials and app development.
Explore Flutter widgets and learn how interactive and layout elements fit into app design. Discover that in Flutter, everything is a widget, from buttons to padding.
Explore Flutter grid layouts using columns and rows, center items with main axis alignment, decorate containers with border radius to create circles, and nest rows and columns to build grids.
Explore how to use the Flutter text widget to display static or dynamic text. Style with text style to adjust color, size, weight, shadows, and decoration.
Learn to add material buttons in Flutter, implement on pressed, customize color and padding, use text or icons, and manage state with setState to update the UI.
learn to build text fields in Flutter by configuring placeholders, alignment, capitalization, and keyboard types, and handle input with on changed and on submitted events.
Set up an assets folder with an images subdirectory, declare them in pubspec.yaml, and display using Image.asset with proper width and height in a Flutter app.
Join a project-based Flutter tutorial to build a calculator app from start to finish, using rows of buttons, text widgets, and basic arithmetic with state updates.
Build a Flutter calculator UI by setting up a main page with a display and a 4x4 button grid, using helper functions to create buttons and rows.
Continue building the rental app UI in Flutter by wrapping with Expanded, applying padding, and using the Align widget to position content.
Learn to style a Flutter rental app interface by adjusting text, fonts, padding, colors, and outline buttons, and manage display string updates through state for interactive UI.
Learn to process button presses in a Flutter calculator, building a number string and updating the display, while handling clear, operators, and equals with state management.
Implement arithmetic functionality for the calculator by handling input, performing plus, minus, multiply, and divide operations, and displaying the resulting value.
Add a single shouldCalculate flag and minimal checks to the calculator in the bonus section to chain operations, preserve previous results, and handle multiple inputs without resetting.
Build an image guesser app by enabling swipe left-right navigation, displaying vehicle images, and revealing answers with a button using custom widgets and drag gestures.
Create the main interface for a flutter image guesser by adding a container, an outlined rounded button, and a text showing the current vehicle name; swiping will be tackled next.
Learn to import images into a flutter project by creating assets and an images folder, updating pubspec.yaml, and displaying assets with the image widget.
Build image cards in Flutter by creating a reusable image card widget that loads images by name, applies a rounded border, and clips borders for a clean carousel.
Learn to build a stack of image cards in Flutter, with build_card and build_cards, using scroll percent and fractional translation to load images as you swipe.
Attach a gesture detector to the card stack to enable left-right swipe gestures, track drag percent, and animate snapping to reveal the next card.
Implement a snapping swipe that focuses on one card at a time with an animation controller using a ticker provider mixin, initializing it and updating the scroll value via listener.
Implement show answer by pairing each image with its answer and revealing the correct vehicle name when pressing show answer, while hiding it on swipe to the next image.
Build a cross-platform rental app with Flutter and Firebase, enabling postings, search, bookings for apartments and houses. Create and manage user accounts, save and like listings, and message after booking.
Explore flutter wireframes by building basic screens and navigation, using display and interactive widgets, and crafting custom widgets for guest and host pages like login, profile, explore, bookings, and conversations.
Build a simple welcome screen for a Flutter rental app, featuring a logo and app name with auto size text for responsive display, and outline login or account navigation.
Learn to build a login page in Flutter for a rental app, featuring username and password text fields, sign in and sign up buttons, form validation, and routes for navigation.
Build a sign up page with first name, last name, city, country, and bio inputs, wrapped in a scroll view, and a submit button that navigates to the home page.
Create a guest home page with a bottom navigation controller to switch between five main pages—explore, saved trips, trips, inbox, and account—using a reusable app bar text widget.
Build a profile account page with a circular avatar, display name and email, and a navigable options list (edit account, become a host, hosting dashboard, log out) using Flutter widgets.
Create a personal info page in Flutter to view and edit user details—first name, last name, email, password, bio, city, country—with a circle avatar and a top save action.
Build a view profile page in Flutter, showing name, avatar, bio, and location (city and country), plus a reviews section with separate review widgets.
Create a reusable Flutter review widget displaying reviewer image, name, a star rating via the flutter_rating package, and the review text on profile pages.
Create a reusable Flutter review form widget that captures text and a five-star rating, then submits to the backend and is used on profile and posting views.
Build explore search page for the rental app with flutter, featuring a top search field with a search icon and a grid of posting widgets showing images, names, and prices.
Build a Flutter posting grid tile that displays image, posting type, location, name, price per night, and rating, and render a two-column grid on the explore page.
Build a saved postings page using a scrollable grid of posting tiles, mirroring the explore page, with a top-right delete button and a future long-press removal feature.
Create a trips page showing upcoming and previous trips using two list views in a scrollable column, with padding and left-aligned headings, and plan a custom trip tile widget.
Develop a reusable trips grid tile displaying image, name, location, price, and start/end dates for upcoming and previous trips, integrated into horizontal list views on the trips page.
Learn to build a posting page in a Flutter rental app, featuring an image gallery and posting details. Showcases host info, amenities, location map, and reviews, with navigation from Explore.
Add and refine the view posting page for a rental app in flutter by implementing bedroom and bathroom widgets, amenities, and reviews. Integrate Google Maps to display the address.
Learn to build a bookings page in Flutter, featuring a custom calendar widget that displays monthly dates, supports left-right month navigation, and enables booking actions.
Refine the booking page calendar to display correct month dates and year, implement year rollover, and enable date selection with padded tiles and clickable month buttons.
Designs and implements a Flutter inbox page that lists conversations with a custom conversation tile inside a list view, with placeholder data and plans to load from the database.
Build a Flutter conversation page for a rental app, featuring a chat list of messages, a multi-line input with a send button, avatar tap to view profile, and inbox-to-conversation navigation.
Learn to build a Flutter chat message list tile for a conversation page, including avatar, text wrapping, padding, and distinct colors for sent and received messages.
Learn to build a host home page in Flutter by adapting the guest dashboard, add bookings and postings pages, and toggle hosting status to navigate between host and guest dashboards.
Build the my postings page as a list view showing posting names and first images, with navigation to edit and a plus button to create new postings.
Builds the create posting page for rental listings, integrating name, house type dropdown, price per night, description, location, beds and baths controls, amenities, image grid, and app bar actions.
Build the my bookings page by integrating a calendar and my postings list to filter bookings by selected posting, with a reset option and navigable listings.
Master wireframe app development in Flutter by creating screens, navigation, and custom widgets for guest, trips, conversation, and host pages; prepare data structures and plan database functionality for upcoming tasks.
Create classes for users, postings, bookings, reviews, conversations, and messages. Pass objects to screens, format dates and full names, and use fake data to prep for future database integration.
Create a simple contact class with first name, last name, full name, and a display image. Add a blank constructor and earmark database loading ahead of the user class.
Learn to implement a unified user class for a rental app by extending a contact class, with email, bio, country, and hosting flags for hosts and guests.
Introduces the posting class for a Flutter rental app, detailing fields like name, type, price, location, host, images, amenities, beds, baths, and a get full name function.
Create a booking class linked to a posting and a user, storing the posting, the contact, and a list of booked dates; add utilities to format bedroom and bathroom details.
Develop and integrate a review system by building a review object with contact, text, rating, and date time, and add create and populate methods for posting and user reviews.
Define and implement conversation and message classes in Dart for the Flutter rental app, including the sender, messages list, and last message formatting for the inbox display.
Add temporary fake data to the Flutter rental app by creating users, postings, conversations, reviews, and bookings to load and display across pages.
Load and display user data on the account and personal info pages using a predefined practice data set and app constants, including image, name, and email, with save functionality deferred.
Load and display postings in the explore page grid, passing postings to grid tiles and the view posting page, with address geolocation and basic booking flow.
Display saved postings and upcoming and previous trips in a Flutter rental app by wiring saved and trips pages to app constants, grid tiles, and date comparisons for navigation.
loads a contact's data into the view profile page, converts it to a user with name, bio, location, and reviews, and wires navigation to profiles and postings.
Loads the inbox page data by retrieving the current user's conversations, displaying the other contact's name and last message, and wiring navigation to the profile page and to individual conversations.
Pass the conversation into the conversation page, load messages with a stream builder, and render each message with a list tile distinguishing the sender.
Explore loading postings into the my postings page and building a create posting page with text controllers, data initialization for new versus existing postings, and navigation-based data passing.
Learn how to load and display booking data in a Flutter rental app by aggregating bookings across all postings, refactoring to use booked dates in a calendar widget.
Build and populate data structures for contacts, postings, bookings, reviews, conversations, and messages, then load and format data for display across app screens, paving the way for database integration.
This section is all about writing the database used in our app.
Learn about how to use Firebase to store and retrieve data, among other things. You will plan out how our database will be structured.
You'll add user authentication with Firebase and store extra data in the database
Learn how to add user data to Firebase Firestore by building a users collection keyed by user ID and populating bio, email, first name, city, country, and reviews.
Add conversation data to the database by creating a conversations collection with user ids, last message text and time, and a messages collection with text, sender id, and date time.
Create a new rental posting by populating the postings collection with address, city, country, amenities, bathrooms, beds, description, host id, name, price, and bookings, then upload images and add reviews.
Execute user data fetch by ID from Firestore, load profile pictures from storage, and outline dynamic fetch for reviews and bookings to support the rental app masterclass.
Develop and optimize posting fetch functions to retrieve posting details by id from Firestore, fetch all related images from storage using image names, and load host information.
Implement asynchronous functions to fetch booking info from Firestore for user- and posting-side views. Load related posting and contact details to complete each booking record.
Learn to fetch review data from Firestore using document snapshots, convert timestamps, and load reviewer contact info with full name split into first and last names for stream-based display.
Develop and implement conversation fetch functions using document snapshots, Firestore, and stream builders to retrieve conversations and messages, parse last message text and time, and derive the other contact.
Fetch and assemble a user's profile information from Firestore, load account and personal info data on login, and display the profile with reviews using a stream builder.
Fetch posting information from Firestore for the explore, view posting, and bookings pages in a Flutter rental app. Load postings, images, hosts, and reviews, and manage bookings with calendars.
Load user data on login, fetch my postings and saved postings from Firestore, fetch bookings, and split trips into upcoming or previous on the trips page.
Finalize Firebase integration with authentication and loading real data into postings, reviews, and conversations. Use stream builders for real-time updates on explore and inbox pages.
Learn to implement database upload functions in the Flutter rental app masterclass. Include insert, update, and delete; manage postings, reviews, conversations, sign-up, and image uploads with Firebase.
Learn to create and update users with firebase authentication and firestore, build a sign-up flow, store profile data as dictionaries, and upload profile images to storage with a default avatar.
Explores implementing user functions in a Flutter rental app, using image picker to upload profile images and syncing sign up and personal info to Firebase authentication and Cloud Firestore.
Create and update rental postings in Firestore using Flutter. Build posting objects, upload posting info, and manage image uploads to support my postings list.
Develop and integrate create and update posting functions on the posting page, including validation, image selection, and mapping fields to Firestore.
Advance the posting page by wiring type selection and bedrooms and bathrooms counters with state updates, and enable saving postings with images to Firestore while fixing navigation indexing.
Learn to implement saved postings in a Flutter rental app by adding and removing postings, updating the database, and preventing duplicates.
Explore building conversation features in a rental app by implementing send message, update last message date time and text, and create conversations in Firestore with a stream builder.
Learn to implement booking functionality in a flutter rental app by adding bookings to postings and users, selecting dates with calendar widgets, and initiating host–booker conversations in Firestore.
Implement review functions for postings and users by saving reviews to firestore, using a data map with date time, name, rating, text, and user id.
Add search filter functions to the explore page, enabling search by name, city, and type. Implement a text editing controller and stream-based queries to refine results and handle clear actions.
Add the become a host function to your flutter app, updating the database and account page to toggle hosting status and navigate to host or guest dashboards.
Learn to filter bookings by a selected posting on the bookings page, display only that posting’s booking dates in the calendar month widget, and clear to show all bookings again.
Deliver database upload functions for users, postings, reviews, and conversations, including sign up, authentication, account edits, messaging, and bookings.
Learn to build a rental app with Flutter, enabling postings, search, booking, saved listings, messaging, and Firestore and Firebase authentication, plus planning data structures and UI for hosting and exploration.
Are you looking to enhance your career by learning a coding language? Do you want to build an app but don't know where to start? Or you are seeking a side hustle that will finally give you the freedom and flexibility you've been searching for? If so, this course is for you!
Learn Google Flutter from Scratch to a Fully Functional App
This masterclass will take you step by step through building a complete app. If you’ve ever tried to build an app in Xcode for iOS and then re-built it in Android Studio for Android, you’ll see how revolutionary Google Flutter is. With Flutter you can seamlessly create apps for Android, iOS and web all at the same time. It's growing in popularity every day and will soon be the #1 framework for app development.
THE COMPLETE SOURCE CODE IS AVAILABLE!
Save money you’d use on coding bootcamps
This project is equivalent to what you’d get at an expensive $20,000 coding bootcamp. Instead you can watch this course from your home and get the same training and product as a bootcamp.
Are you ready to become an expert in a technology supported by Google? Look no further.
The biggest struggles we hear from people like you who can’t get past the first step:
You don’t know the best technology to build your app
You can’t find a complete curriculum to learn in your free time
You get overwhelmed with the process of building a huge project
The team at Mammoth Interactive is here to take these problems from your hands once and for all.
Team Mammoth is passionate about teaching the world to code. We live and breathe e-learning!
We’re dedicated to creating efficient courses that teach the real-world skills of the future. We make sure anyone can take our courses regardless of experience. Whether you want to start a new hobby or change careers, we have a fun and straightforward course for you at an affordable price.
Our passion for programming shows throughout the entire course, and it's our hope that you find programming joyful and valuable.You’ll be building an app for everyone you know, whether they use Android or iOS.
We believe (have proof through our outstanding students) that anyone can learn to code. If you know how to build apps, you’ll be ahead of the game in the long run as technology continues to be more important in every industry. You can have a stable and sound career or unleash your hidden talents with a side hustle.
You don’t need to spend years learning. With us you can learn in one course to develop your first app. You never know, your app could explode and change your life.
This course will open many doors for you, especially if you are looking to becoming a full-fledged app developer.
— Team Mammoth