Swift exercises and examples carried out during the #100DaysOfCode
Day | Topic |
---|---|
001 | Introduction and how an app works |
002 | Tools, materials and set up with Xcode |
003 | Xcode development and environment walkthrough |
004 | Design user interface and app icon |
005 | Xcode storyboard and interface builder |
006 | Git and GitHub configuration for Xcode |
007 | Design a dice app |
008 | Swift variable, arrays and IBOutlet IBAction |
009 | Random dice faces and ultimate app |
010 | Constants, range operator, and randomization |
011 | 8 ball app challenge |
012 | Auto layout and responsive UIs |
013 | Calculator auto layout |
014 | Functions and scope |
015 | Xylophone project |
016 | If-else control flow and switch statements |
017 | Dictionaries and unwrapping optionals |
018 | Egg timer project |
019 | 2-Dimensional array, structures with methods and properties |
020 | Quizzler app project |
021 | Design patterns and functions with outputs and returns |
022 | Immutability and mutating functions |
023 | Redesign quizzler app with MVC design pattern |
024 | Quizzler app with multiple choices |
025 | Creating a “choose your own adventure” game |
026 | UISlider to calculate the BMI |
027 | Destini App |
028 | Classes and inheritance |
029 | Custom UIViewController class, create a UI programmatically and pass data between ViewControllers |
030 | Segues and navigation for multi-screen apps |
031 | Optional binding, chaining and the null coalescing operator |
032 | Finish the BMI app |
033 | Tip calculator and bill split app |
034 | Protocols and delegates |
035 | Dark mode and working with vector assets |
036 | Learn how to use UITextField with protocols and delegates |
037 | Swift closures |
038 | Use URLSession and JSON decoding |
039 | Typealias with protocols and delegate |
040 | Internal and external parameter names, error handling, and DispatchQueue usage |
041 | Extensions and default implementations for protocols |
042 | Using extensions to refactor, CoreLocation, and get location data |
043 | Bitcoin price ticker |
044 | Loops, loops, loops, loops for everyone |
045 | 3rd party libraries, CocoaPods and adding Firebase to the xCode project |
046 | Firebase registers a new user, login and logout |
047 | Constants, UITableView, and customizing cells using a .xib file |
048 | Type casting with operator as, as?, as!, is, any |
049 | Firestore set up, saving and retrieving data |
050 | Sort data, listen the updates on Firestore and use the Swift package manager |
051 | ViewController lifecycle |
052 | Command line and terminal |
053 | Introduction to SwiftUI and rebuilding the app on day 4 |
054 | SwiftUI: business card |
055 | SwiftUI: design a layout using spacer and subviews |
056 | SwiftUI: feature building and state management |
057 | SwiftUI: list, Identifiable protocol, networking and Observer design pattern |
058 | SwiftUI: UIkit components |
059 | SwiftUI: quick overview of Mac catalyst and running iOS app on Mac |
060 | Git, version control, and using Xcode for source control |
061 | Subclassing, TableView delegate methods and accessories, UIAlert |
062 | Local data storage with UserDefaults, singleton object and creating a custom data model |
063 | The concept of iOS sandboxing, data encoding and decoding with NSCoder |
064 | SQLite, configure Core Data and use CRUD operations |
065 | Relationship graph in Core Data and lists of lists |
066 | Introduction to Realm and use CRUD operations |
067 | Swipeable cells, inheriting and updating UI |
068 | Computed and Observed properties |
069 | Swift structs vs classes |
070 | Calculator project using: getter and setters, access levels, and computed properties |
071 | Swift tuples and transform the calculator project from classes to structs |
072 | Introduction to machine learning and the difference between supervised and unsupervised learning |
073 | CoreML and reinforcement learning |
074 | Import image recognition model and enable camera functionality |
075 | Get image recognition results from the ML model |
076 | ML, The hot dog-identifying app from HBO's Silicon Valley |
077 | Introduction to CreateML |
078 | Build your own machine learning model |
079 | Using createML for natural language processing |
080 | Introduction to ARKit, configure the project for AR and create a 3D object |
081 | Introduction to app design and why design is important for an app |
082 | Color theory and how to combine colors to create color palettes |
083 | Introduction to typography, the family of Serif types |
084 | Combine fonts |
085 | Approach to UI Design and the importance of Alignment |
086 | Usability |
087 | Simplicity and consistency |
088 | Flow diagrams and wireframes |
089 | Review |
090 | Idea validation |
091 | The Simplest Way of Validating Your Idea |
092 | Using Google Trends to estimate the size of your market |
093 | The Landing page validation method |
094 | Creating a Minimum Viable Product |
095 | Use crowdfunding to validate and finance your idea |
096 | How to monetize your App |
097 | When to use in-app ads |
098 | How to get an App icon designed without breaking the bank |
099 | Only on the App Store |
100 | Your first 1000 customers |