Welcome to my iOS development portfolio! I am an enthusiastic iOS developer with a strong passion for learning and building creative mobile solutions. My repository is a collection of various iOS projects that showcase my skills in Swift, SwiftUI, UIKit, and modern iOS development practices. Whether I'm working on simple utilities or more complex apps, my goal is to continuously grow as a developer, embrace new challenges, and deliver exceptional user experiences.
I am always eager to collaborate, receive feedback, and contribute to exciting projects, so feel free to explore my work and reach out!
- Languages: Swift, Dart
- iOS Frameworks: UIKit, SwiftUI
- Cross-platform frameworks: Flutter
- APIs & Networking: URLSession, Alamofire, JSON Decoding, REST APIs
- Design Patterns: MVC, MVVM
- AI: For more details on AI and tools to use in your day to day coding/development, please check out the AI page
- Other: Auto Layout, Storyboards, Programmatic UI, Dark Mode support, Localization
These are a collection of demo projects that showcase my skills and experience in iOS development. Each project is designed to demonstrate a specific concept or technology, from core Swift fundamentals to more advanced frameworks and APIs. These demos highlight my hands-on approach to learning and applying new techniques in real-world scenarios:
- For
accessibility
(Voice Over and Dynamic Type) please check out AccessibilityDemo - For general
Swift concepts
please check out SwiftDemo - For
networking
(URLSession and Alamofire) please check out NetworkingDemo - For
Cocoapods
andLottie-ios
usage please check out CocoaPodsDemo - For
ARC(Automatic reference counting)
in Swift, please check out ARCDemo - For
WKWebView
orSFSafariViewController
please check out WebContentDemo - For
UITableView
please check out TableViewUIKitDemo - For
SwiftUI
related projects and examples, please see SwiftUI folder - For
Data structures and algorithms
please see Data structures and algorithms - For cross-platform projects&demos, please see the Flutter folder
As a developer, I believe that learning never stops. I'm constantly exploring new technologies, keeping up with the latest trends in iOS development, and improving my current skills. In addition to working on these projects, I regularly:
- Follow WWDC videos to stay up-to-date on new iOS features.
- Explore Swift, SwiftUI, Async Await, and other modern frameworks as part of my learning journey.
I'm always open to feedback and collaboration. If you're working on an exciting iOS project or have feedback on any of my work, don't hesitate to reach out! Feel free to fork this repository, open issues, or submit pull requests. Let's build something amazing together.
You can contact me on LinkedIn or via email at [email protected]
Concept/Topic | Description | Apple Documentation/Official URLs |
---|---|---|
Creating custom UI | Designing and building custom user interfaces for iOS applications. | UIKit Documentation |
Full lifecycle of mobile development | The complete process from development, testing, and publishing apps, to implementing CI/CD and DevOps practices. | iOS Developer Documentation |
Networks and distributed systems | Understanding networking fundamentals like RESTful APIs, HTTP, and asynchronous communication. | Networking with URLSession |
Clean code | Writing maintainable and well-structured code, adhering to principles such as SOLID and DRY. | Swift Documentation |
Mobile landscape & trends | Awareness of current design trends, emerging technologies, and mobile development innovations. | Human Interface Guidelines |
iOS third-party libraries | Using popular libraries for enhanced functionality, such as Alamofire for networking, or Moya for API abstraction. | Swift Package Manager |
Secured REST APIs | Implementing and interacting with secure REST APIs using proper authentication and security practices. | Security Best Practices |
Gitflow or similar | A branch-based Git workflow for managing development and feature releases. | GitHub Documentation |
Code review best practices | Following best practices for peer code reviews to improve quality and maintainability of the codebase. | GitHub Code Review Guidelines |
OAuth and OpenID Connect | Implementing user authentication and authorization using OAuth and OpenID Connect standards. | Authentication Services |
CI/CD | Setting up Continuous Integration and Continuous Delivery pipelines using tools like Jenkins, GitHub Actions, and Fastlane. | Xcode Continuous Integration |
TDD (Test-Driven Development) | Writing tests before developing features to ensure robust, bug-free code through iterative development. | Unit Testing with XCTest |
RxSwift / RxCocoa | Using RxSwift and RxCocoa for reactive programming and handling asynchronous events in iOS applications. | Reactive Programming with Combine |
Asynchronous requests | Managing background tasks and API requests using asynchronous code (async/await) to improve performance and responsiveness. | Concurrency with Swift |
Dependency injection | Designing apps with Dependency Injection to decouple components and improve testability. | Swift Dependency Injection |
Reactive programming | A programming paradigm concerned with data streams and the propagation of change, handled using Combine or third-party libraries. | Combine Documentation |
Apple design guidelines | Following Apple's Human Interface Guidelines (HIG) to build intuitive and user-friendly iOS applications. | Human Interface Guidelines |
Scrum and Agile | Using Agile methodologies such as Scrum for iterative and incremental development in teams. | Agile Development |
Core Animation & UIKit | Using Core Animation and UIKit to build smooth and responsive UI animations and interfaces. | Core Animation Documentation |
Offline storage | Storing data locally on the device using technologies like Core Data, UserDefaults, or SQLite. | Core Data Documentation |
Threading | Managing concurrent tasks with GCD (Grand Central Dispatch) and Operations to improve app performance. | Concurrency Programming Guide |
Unit and integration testing | Writing automated unit and integration tests using XCTest and other frameworks to ensure code correctness. | XCTest Documentation |
iOS APIs and Capabilities | Leveraging various iOS APIs such as Core Location, MapKit, and HealthKit to integrate additional features. | iOS API Capabilities |
App signing and provisioning | Understanding the app signing and provisioning process for distributing apps securely via the App Store or other methods. | App Distribution Guide |
SwiftUI | Building declarative UIs for all Apple platforms using SwiftUI. | SwiftUI Documentation |
Swift Package Manager | Managing Swift libraries and dependencies in a scalable way using Swift Package Manager (SPM). | Swift Package Manager |
CocoaPods | A dependency manager for Swift and Objective-C projects, simplifying the integration of third-party libraries. | CocoaPods Documentation |
Fastlane | Automating app release processes including testing, building, and deploying iOS apps with Fastlane tools. | Fastlane Documentation |
Firebase tools | Integrating Firebase tools like Analytics, Remote Config, and Crashlytics for app monitoring and configuration. | Firebase Documentation |
Code obfuscation | Protecting your code from reverse engineering and tampering by using obfuscation techniques. | Security Best Practices |
High-level functions | Utilizing higher-order functions in Swift such as map , flatMap , filter , and reduce for functional programming. |
Swift Functional Programming |
Closures | Using closures for functional programming, callbacks, and asynchronous code execution in Swift. | Closures in Swift |
Generics | Writing flexible, reusable functions and types using Swift's generics system. | Generics in Swift |
Keychain | Storing sensitive user data securely using the iOS Keychain API. | Keychain Services |
SwiftLint | Ensuring your Swift code follows consistent styling and best practices using SwiftLint. | SwiftLint GitHub |
WatchOS, MacOS, tvOS apps | Expanding your development to other Apple platforms like watchOS, macOS, and tvOS. | WatchOS Documentation |
Continuous Integration (CI) | Automating builds, tests, and deployment with CI tools such as Jenkins, GitHub Actions, and Azure DevOps. | Xcode CI |
Source control | Managing code using version control systems like Git and GitHub, following best practices like GitFlow. | GitHub Flow |
- https://www.linkedin.com/pulse/other-things-ios-developer-should-know-scott-gardner/?trackingId=3bsA1vNGAbF%2F6c54IIUXrw%3D%3D
- https://medium.com/@PavloShadov/best-resources-for-advanced-ios-developer-swift-ade30374593d
- https://www.hackingwithswift.com/example-code
- https://refactoring.guru/refactoring
- https://www.raywenderlich.com/ios/paths/iossoftware
- https://www.raywenderlich.com/718-6-best-practices-for-mobile-app-search-filtering
- https://www.raywenderlich.com/5817-background-modes-tutorial-getting-started
- https://www.raywenderlich.com/35-alamofire-tutorial-getting-started
- https://www.kodeco.com/6587213-alamofire-5-tutorial-for-ios-getting-started#toc-anchor-014
- https://www.raywenderlich.com/3244963-urlsession-tutorial-getting-started
- https://www.raywenderlich.com/ios/paths/iosdatanetworking
- https://www.raywenderlich.com/120-how-to-submit-an-app-to-apple-from-no-account-to-app-store-part-1
- https://www.raywenderlich.com/10868372-testflight-tutorial-ios-beta-testing
- https://www.raywenderlich.com/7738344-mapkit-tutorial-getting-started
- https://www.raywenderlich.com/197-google-maps-ios-sdk-tutorial-getting-started
- https://www.raywenderlich.com/1484288-preventing-man-in-the-middle-attacks-in-ios-with-ssl-pinning
- https://www.raywenderlich.com/129-basic-ios-security-keychain-and-hashing
- https://www.raywenderlich.com/236-how-to-secure-ios-user-data-the-keychain-and-biometrics-face-id-or-touch-id
- https://www.raywenderlich.com/5255-basic-uiview-animation-tutorial-getting-started
- https://www.raywenderlich.com/1343912-adaptive-layout-tutorial-in-ios-12-getting-started
- https://www.raywenderlich.com/322-custom-uiviewcontroller-transitions-getting-started
- https://brainstation.io/career-guides/how-to-become-an-ios-developer
- https://www.hackingwithswift.com/articles/230/how-to-become-an-ios-developer
- https://www.techrepublic.com/article/how-to-become-an-ios-developer-a-cheat-sheet/
- https://codewithchris.com/ios-developer/
- https://www.fadel.io/blog/posts/30-tips-to-make-you-a-better-ios-developer/
- https://www.codingem.com/how-to-learn-ios-development/
- https://medium.com/app-coder-io/10-steps-to-become-a-professional-ios-developer-11b82b6aea4c
- https://developer.apple.com/forums/thread/44008
- https://www.simplilearn.com/skills-required-to-become-an-ios-developer-article
- https://medium.flutterdevs.com/what-is-agile-methodology-in-mobile-app-development-4fa83ed6ac09
- https://www.techaheadcorp.com/blog/build-app-using-agile-development/
- https://medium.com/@edeskhub/why-agile-methodology-for-mobile-app-development-e685b41ea462
- https://appinventiv.com/blog/agile-scrum-methodology-in-mobile-app-development/
- https://hub.packtpub.com/9-reasons-to-choose-agile-methodology-for-mobile-app-development/
- https://developer.apple.com/documentation/uikit/app_and_environment/managing_your_app_s_life_cycle
- https://manasaprema04.medium.com/application-life-cycle-in-ios-f7365d8c1636
- https://medium.com/@neroxiao/ios-app-life-cycle-ec1b31cee9dc
- https://www.javatpoint.com/ios-app-lifecycle
- https://hackernoon.com/application-life-cycle-in-ios-12b6ba6af78b
- https://developer.apple.com/documentation/uikit/uiviewcontroller
- https://medium.com/good-morning-swift/ios-view-controller-life-cycle-2a0f02e74ff5
- https://guides.codepath.com/ios/View-Controller-Lifecycle
- https://mobikul.com/ios-view-controller-life-cycle/
- https://stackoverflow.com/questions/5562938/looking-to-understand-the-ios-uiviewcontroller-lifecycle
- https://bitbar.com/blog/top-5-ios-testing-frameworks-with-examples/
- https://bugfender.com/blog/best-automated-testing-tools-ios/
- https://www.toptal.com/ios/how-to-write-automated-tests-for-ios
- https://blog.kobiton.com/ios-automation-testing-best-practices
- https://www.headspin.io/blog/ios-automation-testing-top-frameworks
- https://www.browserstack.com/guide/how-to-perform-ios-ui-test-automation
- https://docs.swift.org/swift-book/LanguageGuide/Concurrency.html
- https://developer.apple.com/documentation/swift/swift_standard_library/concurrency
- https://medium.com/shakuro/introduction-to-ios-concurrency-a5db1cf18fa6
https://www.viget.com/articles/concurrency-multithreading-in-ios/
https://cocoacasts.com/swift-and-cocoa-fundamentals-what-is-the-main-thread
https://www.hackingwithswift.com/read/9/4/back-to-the-main-thread-dispatchqueuemain
https://www.hackingwithswift.com/quick-start/concurrency/concurrency-vs-parallelism
https://www.hackingwithswift.com/swift/5.5/structured-concurrency
https://medium.com/@duwei199714/ios-why-the-ui-need-to-be-updated-on-main-thread-fd0fef070e7f
https://www.tirupatibalan.com/2019/04/01/process-threads-queues-in-ios.html
https://medium.com/@hassaneldesouky/ios-memory-management-in-under-6-minutes-3be777f69b7e
https://www.raywenderlich.com/966538-arc-and-memory-management-in-swift
https://docs.swift.org/swift-book/LanguageGuide/AutomaticReferenceCounting.html
https://levelup.gitconnected.com/arc-memory-management-in-swift-165fd0329f16
https://www.swiftbysundell.com/basics/memory-management/
https://developer.apple.com/documentation/swift/swift_standard_library/manual_memory_management
https://www.appcoda.com/memory-management-swift/
https://developer.apple.com/documentation/dispatch/dispatchqueue
https://developer.apple.com/forums/thread/74657
https://betterprogramming.pub/queues-and-concurrency-in-ios-for-dummies-4089da2365f8
https://www.avanderlee.com/swift/concurrent-serial-dispatchqueue/
https://medium.com/@rr092293/gcd-queues-in-ios-561ed56b65ae
https://www.raywenderlich.com/books/concurrency-by-tutorials/v2.0/chapters/3-queues-threads
https://medium.com/@almalehdev/concurrency-visualized-part-1-sync-vs-async-c433ff7b3ebe
https://www.raywenderlich.com/5370-grand-central-dispatch-tutorial-for-swift-4-part-1-2
https://www.raywenderlich.com/5293-operation-and-operationqueue-tutorial-in-swift
https://github.com/raywenderlich/swift-algorithm-club
https://medium.com/swlh/data-structures-algorithms-in-swift-part-1-stack-ccae824cc62
https://dennis-xlc.gitbooks.io/swift-algorithms-data-structures/content/chapter5.html
https://www.swiftbysundell.com/articles/picking-the-right-data-structure-in-swift/
https://trio.dev/blog/best-ios-database
https://distantjob.com/blog/best-ios-database/
https://dev.to/apentsov/ios-database-comparison-what-are-the-differences-4h1b
https://developer.apple.com/documentation/coredata
https://www.raywenderlich.com/7569-getting-started-with-core-data-tutorial#toc-anchor-005
https://www.advancedswift.com/core-data-objects/
https://medium.com/@ankurvekariya/core-data-crud-with-swift-4-2-for-beginners-40efe4e7d1cc
https://cocoacasts.com/setting-up-the-core-data-stack-from-scratch
https://www.hackingwithswift.com/books/ios-swiftui/core-data-introduction
https://cynoteck.com/blog-post/core-data-with-swift/
https://betterprogramming.pub/a-light-intro-to-core-data-part-un-e344f9d1528
https://firebase.google.com/docs/ios/setup
https://github.com/firebase/firebase-ios-sdk
https://www.raywenderlich.com/21133526-firebase-tutorial-getting-started
https://developer.goacoustic.com/acoustic-campaign/docs/integrate-ios-sdk-with-firebase-using-swift
https://medium.com/@niamhpower/getting-started-with-firebase-on-ios-part-1-612af4bcabd6
https://www.mongodb.com/docs/realm-legacy/docs/swift/latest/
https://github.com/realm/realm-swift
https://www.raywenderlich.com/9220-realm-tutorial-getting-started
https://www.linkedin.com/pulse/easy-use-realm-swift-riccardo-rizzo/
https://www.freecodecamp.org/news/add-realm-database-to-ios-crud-app-with-with-swift/
https://www.cloudbees.com/blog/realm-database-tutorial-get-started-quickly-swift
https://www.appypie.com/realm-database-swift-getting-started
https://www.raywenderlich.com/6620276-sqlite-with-swift-tutorial-getting-started
https://github.com/stephencelis/SQLite.swift
https://medium.com/@sourabhkolekar16/about-sqlite-swift-d637e0fc2171
https://iosexample.com/easy-to-use-sqlite-orm-library-written-with-swift/
https://www.raywenderlich.com/6620276-sqlite-with-swift-tutorial-getting-started
https://www.raywenderlich.com/7076593-cocoapods-tutorial-for-swift-getting-started
https://codewithchris.com/cocoapods/
https://www.advancedswift.com/ranked-swift-cocoapods/
https://blog.ah.technology/replacing-cocoapods-with-swift-package-manager-fa37d67294c3
https://www.swift.org/package-manager/
https://developer.apple.com/documentation/swift_packages/adding_package_dependencies_to_your_app
https://www.raywenderlich.com/7242045-swift-package-manager-for-ios
https://github.com/apple/swift-package-manager
https://swiftpackageindex.com/
https://brightdigit.com/tutorials/swift-package-manifest-file/
https://cocoacasts.com/xcode-fundamentals-how-to-add-a-swift-package-to-a-project
https://www.uptech.team/blog/swift-package-manager
https://docs.vapor.codes/4.0/spm/
https://github.com/Carthage/Carthage
https://www.raywenderlich.com/7649117-carthage-tutorial-getting-started
https://swiftpackageindex.com/Carthage/Carthage
https://www.codementor.io/blog/swift-package-manager-5f85eqvygj
https://medium.com/@chitralekha.yellewar/carthage-9df89b7f600f
https://manasaprema04.medium.com/dependency-managers-in-swift-d6a01e7a29a8
https://developer.blueshift.com/docs/set-up-blueshifts-ios-sdk-using-carthage
https://getstream.io/blog/migrate-carthage-to-spm/
https://docs.sentry.io/platforms/apple/guides/ios/install/carthage/
https://git-scm.com/book/en/v2/Git-Tools-Submodules
https://git-scm.com/docs/git-submodule
https://www.atlassian.com/git/tutorials/git-submodule
https://github.blog/2016-02-01-working-with-submodules/
https://devconnected.com/how-to-add-and-update-git-submodules/
https://www.vogella.com/tutorials/GitSubmodules/article.html
https://gist.github.com/gitaarik/8735255
https://chrisjean.com/git-submodules-adding-using-removing-and-updating/
https://refactoring.guru/design-patterns
https://chetan-aggarwal.medium.com/ios-design-patterns-f478abd78132
https://www.raywenderlich.com/477-design-patterns-on-ios-using-swift-part-1-2
https://medium.com/swlh/ios-design-patterns-a9bd07818129
https://rubygarage.org/blog/swift-design-patterns
https://gbksoft.com/blog/top-design-patterns-for-developing-ios-apps/
https://stfalcon.com/en/blog/post/ios-patterns
https://developer.apple.com/documentation/swift/cocoa_design_patterns
https://www.spaceotechnologies.com/blog/ios-design-patterns/
https://www.raywenderlich.com/34-design-patterns-by-tutorials-mvvm
https://www.raywenderlich.com/477-design-patterns-on-ios-using-swift-part-1-2
https://www.raywenderlich.com/1000705-model-view-controller-mvc-in-ios-a-modern-approach
https://medium.com/swlh/app-localization-in-swift-ios-swift-guide-baa2c2e4298e
https://developer.apple.com/documentation/xcode/localization
https://www.hackingwithswift.com/example-code/uikit/how-to-localize-your-ios-app
https://phrase.com/blog/posts/ios-tutorial-internationalization-localization/
https://developer.apple.com/localization/
https://medium.com/lean-localization/ios-localization-tutorial-938231f9f881
https://developer.apple.com/documentation/corelocation
https://developer.apple.com/documentation/corelocation/getting_the_user_s_location
https://www.advancedswift.com/user-location-in-swift/
https://www.hackingwithswift.com/read/22/2/requesting-location-core-location
https://stackoverflow.com/questions/25296691/get-users-current-location-coordinates
https://itnext.io/building-a-location-tracker-in-swift-aab99b6267db
https://softauthor.com/ios-swift-get-user-location-real-time/
https://www.raywenderlich.com/5247-core-location-tutorial-for-ios-tracking-visited-locations
https://developer.apple.com/machine-learning/
https://developer.apple.com/documentation/coreml
https://www.raywenderlich.com/7960296-core-ml-and-vision-tutorial-on-device-training-on-ios
https://bignerdranch.com/blog/an-intro-to-machine-learning-in-ios-with-swift-and-playgrounds/
https://9to5mac.com/2020/08/06/apple-using-machine-learning/
https://towardsdatascience.com/core-machine-learning-for-ios-developers-7f2a4b19ec08
https://www.hackingwithswift.com/books/ios-swiftui/training-a-model-with-create-ml
https://www.raywenderlich.com/5653-create-ml-tutorial-getting-started
https://docs.swift.org/swift-book/LanguageGuide/ClassesAndStructures.html
https://medium.com/@burakakyalcin/class-vs-struct-in-swift-f8c48eaacdba
https://abhimuralidharan.medium.com/difference-between-a-struct-and-a-class-in-swift-53e08df73714
https://developer.apple.com/documentation/swift/choosing_between_structures_and_classes
https://www.avanderlee.com/swift/struct-class-differences/
https://betterprogramming.pub/struct-vs-classes-in-swift-the-differences-explained-1e164a22efa6
https://blog.logrocket.com/introduction-to-classes-and-structs-in-swift/
https://levelup.gitconnected.com/class-vs-struct-8e4dafa66ae9
https://www.raywenderlich.com/21020457-ios-unit-testing-and-ui-testing-tutorial
https://semaphoreci.com/blog/xcode-unit-testing-tutorial
https://medium.com/swlh/unit-testing-in-swift-the-fundamentals-eec805766349
https://www.swiftbysundell.com/basics/unit-testing/
https://clean-swift.com/effective-unit-testing/
https://developer.apple.com/documentation/xctest
https://www.hackingwithswift.com/read/39/overview
https://www.avanderlee.com/swift/unit-tests-best-practices/
https://roadfiresoftware.com/2018/03/how-to-write-unit-tests-in-swift-4-with-xctest/
https://semaphoreci.com/blog/ui-testing-swift
https://codewithchris.com/xcode-ui-testing-swift/
https://www.hackingwithswift.com/articles/148/xcode-ui-testing-cheat-sheet
https://www.appcoda.com/ui-testing-swiftui-xctest/
https://developer.apple.com/documentation/xctest/user_interface_tests
https://www.swiftbysundell.com/articles/getting-started-with-xcode-ui-testing-in-swift/
https://blog.bitrise.io/post/the-ultimate-guide-to-unit-and-ui-testing-for-beginners-in-swift
https://www.raywenderlich.com/30227776-swiftui-testing-with-viewinspector-for-ios
https://www.raywenderlich.com/21020457-ios-unit-testing-and-ui-testing-tutorial
https://www.hackingwithswift.com/quick-start/swiftui/swiftui-vs-interface-builder-and-storyboards
https://medium.com/technology-nineleaps/swift-ui-or-storyboard-675ff2b40829
https://www.toptal.com/ios/ios-user-interfaces-storyboards-vs-nibs-vs-custom-code
https://stackoverflow.com/questions/59766558/swiftui-vs-interface-builder-and-storyboards
https://blog.logrocket.com/storyboard-vs-programmatically-ios-ui-design/
https://instabug.com/blog/why-we-dont-use-interface-builder-and-storyboards-at-instabug/
https://medium.com/@matlyles/storyboards-vs-programmatic-ios-development-40c5b5907f85
https://developer.apple.com/xcode/interface-builder/
https://www.raywenderlich.com/5055364-ios-storyboards-getting-started
https://developer.apple.com/documentation/uikit/uiviewcontroller
https://www.hackingwithswift.com/example-code/uikit/what-is-a-uiviewcontroller
https://www.appypie.com/view-controller-uiviewcontroller-ios-swift
https://www.swiftbysundell.com/articles/subclass-free-view-controllers-in-swift/
https://cocoacasts.com/managing-view-controllers-with-container-view-controllers/
https://developer.apple.com/documentation/uikit/uitableviewcontroller
https://www.ralfebert.com/ios-examples/uikit/uitableviewcontroller/
https://iosdevcenters.blogspot.com/2018/01/uitableviewcontroller-in-swift-4.html
https://www.hackingwithswift.com/read/1/3/designing-our-interface
https://www.appypie.com/table-view-controller-uitableviewcontroller-how-to
https://www.raywenderlich.com/4363809-uisearchcontroller-tutorial-getting-started
https://developer.apple.com/documentation/uikit/uicollectionview
https://www.raywenderlich.com/18895088-uicollectionview-tutorial-getting-started
https://guides.codepath.com/ios/Collection-View-Guide
https://guides.codepath.com/ios/Using-UICollectionView
https://medium.com/swlh/introduction-to-uicollectionview-ios-swift-ed4e7ab1e1e3
https://www.swiftbysundell.com/articles/building-modern-collection-views-in-swift/
https://lickability.com/blog/getting-started-with-uicollectionviewcompositionallayout/
https://developer.apple.com/documentation/uikit/uiscrollview
https://www.raywenderlich.com/5758454-uiscrollview-tutorial-getting-started
https://medium.nextlevelswift.com/using-uiscrollview-in-swift5-with-autolayout-b0e463d3e5fb
https://www.appcoda.com/uiscrollview-introduction/
https://www.objc.io/issues/3-views/scroll-view/
https://oleb.net/blog/2014/04/understanding-uiscrollview/
https://www.willowtreeapps.com/craft/how-to-create-a-simple-collapsing-header-with-uiscrollview
https://developer.apple.com/documentation/uikit/uisplitviewcontroller
https://www.raywenderlich.com/4613809-uisplitviewcontroller-tutorial-getting-started
https://nshipster.com/uisplitviewcontroller/
https://swiftwithmajid.com/2019/04/03/adapting-app-for-ipad-with-uisplitviewcontroller/
https://mobikul.com/uisplitviewcontroller-in-swift-5-ios-13/
https://www.biteinteractive.com/split-view-controllers-done-right-in-ios-14/
https://medium.com/swlh/ios-14-uisplitviewcontroller-5-issues-that-you-may-run-into-65b09601b3fb
https://developer.apple.com/documentation/uikit/uitableview
https://guides.codepath.com/ios/Using-UITableView
https://stackoverflow.com/questions/33234180/uitableview-example-for-swift
https://programmingwithswift.com/create-a-uitableview-with-swift/
https://www.codingexplorer.com/getting-started-uitableview-swift/
https://thomashanning.com/uitableview-tutorial-for-beginners/
https://www.raywenderlich.com/8549-self-sizing-table-view-cells
https://www.raywenderlich.com/2198310-uistackview-tutorial-for-ios-introducing-stack-views
https://www.raywenderlich.com/5758454-uiscrollview-tutorial-getting-started
https://www.raywenderlich.com/5786-uitableview-infinite-scrolling-tutorial
https://www.raywenderlich.com/4829472-uicollectionview-custom-layout-tutorial-pinterest