Instagram Firestore App Clone | Swift 5 + iOS 14 | MVVM
What you'll learn
- Build an Instagram clone with iOS 14, Swift 5 & Firestore without the use of storyboards
- Modified MVVM Architecture
- Build a social network (Posts, Notifications, Following, Likes etc.)
- Engineer a backend using Cloud Firestore
- Advanced auto-layout and programmatic UI skills with Swift
- Register and authenticate users using Firebase
- Advanced UI/UX development to build a clean and visually appearing user interface
- Advanced Object Oriented Programming skills
Requirements
- Mac computer
- Some programming experience and knowledge of Xcode is preferred
Description
What are we building?
In this course, you will learn how to build a complete version of Instagram ready to be published on the App Store. We will be building all the core components of a social network. This includes following users, making posts, liking/commenting on posts, in-app notifications, creating a user profile, and registering users. Throughout the process, you will develop high level programming, app design and app development skills. We will be building this without the use of storyboards, fully programmatically.
Prior Experience?
Some programming and basic Xcode experience is preferred. The course will move a little fast if you're a complete beginner, but you will pick things up along the way.
Why take this course?
Learning advanced development skills should be taught using real world examples. This course will teach you how to build a fully functional social network, from complete scratch. You will be learning advanced front and backend development skills, from a real life professional developer. You will learn how to code like a pro, and everything will be explained in detail along the way. This will teach you to build production ready applications, that are easily scalable and maintainable. This also makes for a great project to add to your portfolio, which you can use to show off to potential employers if you're trying to become a pro.
What will you learn?
Comprehensive knowledge and understanding of Swift 5 & Xcode 11
Implement Model View ViewModel (MVVM) architecture
How to engineer a backend server using Cloud Firestore
How to authenticate and register users with Firebase
How to communicate with a database (read/write)
How to monitor events in a database
How to upload images to Firebase Storage
How to structure data for optimum performance in Cloud Firestore
How to build a fully functioning social network (likes, comments, follow, posts, notifications)
How to programmatically construct views and controllers
How to parse incoming JSON data from database
How to use CocoaTouch classes, UIKit, UserNotifications and more
How to use CocoaPods and custom third party APIs
How to implement/use protocols
How to implement custom subclasses for clean and reusable code
How to dynamically size collection view cells
How to create extensions and functions for clean and reusable code
Advanced level programming and app development skills
Advanced level User Interface Design
Advanced level back end engineering
What features are included?
Create users
Create a user profile
Authenticate users with Firebase
Search for users
Upload posts
Home feed with posts from followers
Like posts
Comment on posts
In app notifications for following, post likes and post comments
Follow/Unfollow users from profile
Follow/Unfollow user from notifications screen
Go to post or profile from notifications screen
Display timestamp on posts and notifications
Logging in and logging out
Who this course is for:
- Anyone who wants to learn how to build the famous Instagram iOS App!
Instructor
Stephan is a seasoned technology expert with a passion for software engineering and a remarkable journey of self-discovery. With a decade of hands-on experience in the field, Stephan has established himself as a distinguished figure in the world of software development.
Formerly a Senior Software Engineer at Meta (formerly known as Facebook), Stephan played an instrumental role in crafting innovative solutions that drove the company's technological advancements. His tenure at one of the tech industry's giants allowed him to gain deep insights into the intricacies of large-scale software systems and the ever-evolving landscape of modern technology.
What sets Stephan apart is his unconventional path to mastery. With a remarkable story of being entirely self-taught, he demonstrates the power of determination and relentless pursuit of knowledge. Starting from scratch, Stephan embarked on a journey to understand the inner workings of code, algorithms, and software architecture. Through countless hours of experimentation, learning from failures, and seeking out the best resources, he honed his skills to a professional level that caught the attention of industry leaders.
As an instructor, Stephan's unique blend of hands-on experience and self-taught expertise provides a refreshing perspective. He knows firsthand the challenges and triumphs that come with learning complex technical subjects without a traditional educational background. Stephan's teaching approach is not just about imparting knowledge; it's about instilling the belief that anyone with dedication and the right guidance can achieve mastery in software engineering.
Stephan Dowless is committed to helping others navigate the ever-changing realm of technology. His courses go beyond the textbook, offering practical insights, real-world examples, and a mentorship-like approach that empowers students to grasp complex concepts with confidence. Whether you're a beginner taking your first steps into coding or an experienced programmer aiming to elevate your skills, Stephan's guidance will undoubtedly inspire and catalyze your growth.
Join Stephan in his mission to bridge the gap between aspiration and accomplishment in the world of software engineering. Through his courses, you'll not only learn the technical aspects but also the mindset and strategies that propelled him to success in a competitive industry. Your journey to becoming a proficient software engineer starts here, under the guidance of an instructor who truly understands the path to mastery.