
this course introduces building a strava-like iOS app using MapKit, Realm, and UIKit, with a user-centered map, slide-to-stop runs, and a run history showing duration, pace, and distance.
Create an iOS app in Xcode from scratch without storyboards, configuring the project and folder structure. Launch the app programmatically using a base view controller and a window scene.
Create a tab bar controller class to manage home and history tabs, configure tab bar items with system icons, and initialize view controllers with distinct colors, all programmatically.
Create a reusable gradient view with a custom layer and cg color conversion, filling the screen. Use it as the home view background for the map and run button.
Build a circular button as a custom control with configurable border, corner radius, and title styling, and add a location manager to manage authorization for run tracking.
Build a home view with a translucent map, a circular start button, and a centered label; configure location authorization, show user location, and follow user movement with MapKit.
Build the current run view controller with a gradient background, assemble time, base label, distance, and pace UI elements, and integrate a custom slider and stack views with programmatic constraints.
Build a current run view controller that tracks location, updates time and distance, formats pace, and uses a draggable slider with a pan gesture, setting up a Realm-backed logs page.
Create a history view controller featuring a custom history cell that displays total miles, total time, and entry date, with constraints and data source setup for Realm storage.
Integrate Realm to store run data and add a shimmer effect and slide-to-unlock animation while polishing the home and log screens, plus map visualization with pins and run routes.
Install Realm using CocoaPods by editing the podfile, adding RealmSwift and related pods, running pod install, and opening the generated workspace to verify the build.
Define Realm models for run and location with primary key and indexed fields, establish one-to-many relations, and implement add and fetch operations via a queue to persist runs in Realm.
Configure the history table with a cell configure function that takes a run object, formats total miles, duration, and date, and fetches all runs from Realm.
Implement saving runs to Realm, including distance and locations, when stopping a run, while building a shimmered slider UI and a previous run detail view with a map.
Explore implementing previous run details in a Strava clone by rendering an MKPolyline overlay and start/end annotations with MapKit, centering the map, and debugging run duration storage.
In this course we will build a mini Strava clone from scratch. This app will allow you to track user's location using core location along with displaying their location inside a map. You will be building custom controls from scratch while learning about various reusable components. You will learn to build components in code.
Complete app is written programmatically so we will not be using any storyboard or nib or xib files to create our views. You will learn about programmatic autolayout constraints.
You will learn about CoreLocation, location tracking while user is running and you will learn to keep track of user's location on the Map using MapKit. You will learn to build custom annotations and add custom annotations into map view to show user's start and end locations. You will learn about mapkit and its delegate functions.
We will use realm database to store previous run data so you will learn how to integrate realm into your project using Cocoapods. You will learn to model objects for your realm database so you data can be represented in table format with one to may relationships.
We will also build a component to add shimmer effect to a label which will have a custom slider control to end the current run.