Skip to content

A simple list app for iOS, showcasing the implementation of CRUD operations, MVVM pattern and reactive programming.

Notifications You must be signed in to change notification settings

cyliong/list-ios

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

list-ios

This is a simple list mobile app (to-do list, tasks, shopping list, recipes, and the like) showcasing the implementation of CRUD operations, written in Swift for the iOS platform.

This project, together with list-android, presents a way to develop cross-platform native mobile apps with similar patterns and libraries, including:

  • MVVM pattern
  • Reactive programming
  • Material Components
  • Realm
  • Flutter module

In addition, BDD-style test automation for both the Android and iOS list apps is showcased at cross-platform-bdd.

A Flutter module, list-module is to be integrated into this project to share code written in Dart across platforms.

However, if you are looking for a pure native solution without the need to have a single codebase across platforms, refer to the native branch.

Alternatively, if you are looking for a more iOS-specific solution without concerning too much about reusing similar patterns and libraries across platforms, refer to the list2-ios project.

Features

  • Display a list of items (UITableViewController, Realm Results)
  • Navigate to a page to add or edit items (UINavigationController, segue, UITextField)
  • Reactively enable or disable save button upon text changes (RxSwift)
  • Swipe to delete items (tableView(_:commit:forRowAt:))
  • Store items in database using data model (Realm Object)
  • Database migration (Realm.Configuration)
  • About page (Flutter module)

Dependencies

  • Realm Database
  • RxSwift
  • Material Components
  • Flutter

Requirements

  • Xcode 13.3 or higher
  • CocoaPods 1.11.3 or higher
  • iOS 10.0 or higher
  • Swift 5 or higher

Setup

  1. Download this project (list-ios) and list-module then place them in the same directory (e.g. path/to/):
path/to/
├── list-ios/
└── list-module/
  1. Run the following to set up list-module:
cd path/to/list-module
flutter pub get
  1. Run the following to set up list-ios:
cd path/to/list-ios
pod install
  1. Open List.xcworkspace in Xcode and run the app.

About

A simple list app for iOS, showcasing the implementation of CRUD operations, MVVM pattern and reactive programming.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published