GithubHelp home page GithubHelp logo

jmbae / ios-base Goto Github PK

View Code? Open in Web Editor NEW

This project forked from rootstrap/ios-base

0.0 1.0 0.0 19.06 MB

Boilerplate for new iOS projects using Swift 5. Provides a handful of functionalities.

License: MIT License

Objective-C 0.38% Swift 97.73% Ruby 1.89%

ios-base's Introduction

Build Status Maintainability Test Coverage License

iOS Base Template

iOS base is a boilerplate project created by Rootstrap for new projects using Swift 5. The main objective is helping any new projects jump start into feature development by providing a handful of functionalities.

Features

This template comes with:

Main

  • Complete API service class to easily communicate with REST services.
  • Examples for account creation and Facebook integration.
  • Useful classes to manage User and Session data.
  • Secure way to store keys of your third party integrations.
  • Handy helpers and extensions to make your coding experience faster and easier.

Extensions

This App Template also contains other branches with specific features that may be of use to you:

To use them simply download the branch and locally rebase against master/develop from your initial iOS base clone. Important: See steps below on how to install this features.

How to use

  1. Clone repo.
  2. Install desired extensions from their branches.
  3. Run swift init.swift from the recently created folder.
  4. Initialize a new git repo and add your remote url.
  5. Done!

To manage user and session persistence after the original sign in/up we store that information in the native UserDefaults. The parameters that we save are due to the usage of Devise Token Auth for authentication on the server side. Suffice to say that this can be modified to be on par with the server authentication of your choice.

Pods

Main

  • Alamofire for easy and elegant connection with an API.
  • IQKeyboardManagerSwift for auto-scrolling to current input in long views. Note: this pod is not fully working on iOS 11. Here is the issue we encountered and the meantime solution.

Testing

Optional

Optional configuration

facebook

  1. In info.plist on the URL types array, find fbXXXXXXXXXXX and replace it for the string "fb" + the ID of your app. i.e: fb435272928934.
  2. Change the FacebookAppID value for the same AppID that you replace above.
  3. Change the FacebookDisplayName value for the name of the app on Facebook.
  4. Done :)

Security recommendations

Third Party Keys

We strongly recommend that all private keys be added to a .plist file that will remain locally and not be committed to your project repo. An example file is already provided, these are the final steps to set it up:

  1. Rename the ThirdPartyKeys.example.plist file on your project so that it is called ThirdPartyKeys.plist. To add a set of keys simply add a dictionary with the name you want the key to have and add the corresponding Debug, Staging and Release keys as items.
  2. Remove the reference of ThirdPartyKeys.plist from XCode but do not delete the file. This way, you will keep the file locally(it is already in the .gitignore list) in the project directory. Note: Do NOT move the file from the current location, the script uses the $(PROJECT_DIR) directory.
  3. Go to Product -> Scheme -> Edit scheme. Then select Pre-actions for the Build stage and make sure that the Provided build setting is set to your current target. Repeat this step for the Post-actions script.
  4. Done :)

License

iOS-Base is available under the MIT license. See the LICENSE file for more info.

NOTE: Remove the free LICENSE file for private projects or replace it with the corresponding license.

Credits

iOS Base is maintained by Rootstrap with the help of our contributors.

ios-base's People

Contributors

glm4 avatar pmalvasio avatar germanstabile avatar aguscha333 avatar diego0510 avatar mcousillas6 avatar fernandatoledo avatar mjurfest avatar camilamoscatelli avatar mariiio avatar toptierlabs avatar fabkremer avatar jmbae avatar mato2593 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.