Skip to content

nativeapptemplate/NativeAppTemplate-Free-iOS

Repository files navigation

NativeAppTemplate-Free-iOS

NativeAppTemplate-Free-iOS is a modern, comprehensive, and production-ready native iOS app with user authentication.
This iOS app is a free version of NativeAppTemplate-iOS (Solo) and NativeAppTemplate-iOS (Team).

The Android version is available here: NativeAppTemplate-Free-Android.

Overview

NativeAppTemplate-Free-iOS is configured to connect to api.nativeapptemplate.com.
You can purchase the source code for the backend server APIs, made with Ruby on Rails, that power api.nativeapptemplate.com:

Screenshots

Screenshot showing Sign in screen, Shops screen and Settings screen

Features

NativeAppTemplate-Free-iOS uses modern iOS development tools and practices, including:

  • 100% Swift
  • 99% SwiftUI (UIKit is only used for the contact email screen.)
  • @Observable (iOS 17: streamlined Swift state management)
  • SwiftLint
  • Inspired by emitron-iOS

Included Features

  • Onboarding
  • Sign Up / Sign In / Sign Out
  • Email Confirmation
  • Forgot Password
  • Input Validation
  • CRUD Operations for Shops (Create/Read/Update/Delete)
  • And more!

Not Included in the Free Version

The full versions (NativeAppTemplate-iOS (Solo) and NativeAppTemplate-iOS (Team)) include additional advanced features:

  • URL Path-Based Multitenancy (e.g., prepends /:account_id/ to URLs)
  • User Invitation to Organizations
  • Role-Based Permissions and Access Control

Supported Devices

  • iPhone

    • SDK: iOS
    • Orientation: Portrait mode only
    • Screen: Requires full screen
  • iPad

    • SDK: iOS
    • Orientation: Portrait mode only
    • Screen: Requires full screen
  • Mac

    • SDK: iOS
    • Orientation: Portrait mode only
    • Screen: Requires full screen
    • Notes: Designed for iPad

Getting Started

To get started, clone this repository:

git clone https://github.com/nativeapptemplate/NativeAppTemplate-Free-iOS.git

Requirements

To run this app successfully, ensure you have:

  • An iOS device or emulator with iOS version 17.6 or higher

Running with the NativeAppTemplate-API on localhost

To connect to a local API server, update the following configuration in in Constants.swift:

static let scheme: String = "http"
static let domain: String = "192.168.1.21"
static let port: String = "3000"

SwiftLint

SwiftLint runs as part of the build process in Xcode, and errors/warnings are surfaced in Xcode as well. Please ensure that you run SwiftLint before submitting a pull request.

To install SwiftLint using homebrew:

$ brew install swiftlint

Xcode will automatically run SwiftLint if it is installed.

Blog

Contributing

If you have an improvement you'd like to share, create a fork of the repository and send us a pull request.

About

Modern, comprehensive, and production-ready native iOS app with user authentication.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages