AdvancediOS
An iOS example project demonstrating advanced concepts
Install / Use
/learn @n8chur/AdvancediOSREADME
AdvancediOS

AdvancediOS demonstrates some advanced concepts for iOS application development using a small example application.
Advanced concepts include:
- A unique application architecture that takes inspiration from MVVM, FRP, Coordinator Pattern, Factory Pattern, Dependency Injection, and Protocol Oriented Programming
- XcodeGen for generating an Xcode project
- Type safe code generation for assets, plists, and localized string references using SwiftGen
- Linting with SwiftLint
- Basic localization
- Continuous Integration with CircleCI and Fastlane
- BDD style unit testing
- Dynamic UI theming
- Programmatic UI
- A custom logging framework that leverages XCGLogger
- Using internal frameworks for more modular code
- Carthage for iOS dependency management with caching support using Rome
- Version pinning of as many tooling dependencies as possible using Mint and Bundler.
This project is mostly intended to be used as a playground to experiment with new tools, libraries, and design patterns for iOS development.
Setup
Prerequisites
- Ruby installation matching the version found in .ruby-version (use rbenv to switch versions)
- Homebrew
- Bundler
- Xcode installation matching version found in .xcode-version (use xcode-install to switch versions)
Installation
- Setup the project:
$ brew bundle && bundle install
$ bundle exec fastlane bootstrap
- Open
Application.xcodeproj
Notes
- Run
$ bundle exec fastlanefor a list of Fastlane lanes that can be run on the repository. Application.xcodeprojshould be used for general development for building a release build.Application_Dev.xcworkspaceis only useful when debugging issues in Carthage dependencies since the Carthage dependency's project is added instead of using the pre-built framework.
Contributions
Related Skills
node-connect
344.4kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
99.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
344.4kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
344.4kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
