All Projects → liftoffcli → Liftoff

liftoffcli / Liftoff

Licence: mit

Programming Languages

ruby
36898 projects - #4 most used programming language
shell
77523 projects
objective c
16641 projects - #2 most used programming language
swift
15916 projects

Projects that are alternatives of or similar to Liftoff

Trainer Mac
Trains a model, then generates a complete Xcode project that uses it - no code necessary
Stars: ✭ 122 (-92.53%)
Mutual labels:  xcode
Ios Good Practices
Good ideas for iOS development, by Futurice developers.
Stars: ✭ 10,417 (+537.91%)
Mutual labels:  xcode
Spperspective
Widgets iOS 14 animation with 3D and dynamic shadow. Customisable transform and duration.
Stars: ✭ 127 (-92.22%)
Mutual labels:  xcode
Tuist
🚀 Create, maintain, and interact with Xcode projects at scale
Stars: ✭ 2,234 (+36.8%)
Mutual labels:  xcode
Xcode developer disk images
Stars: ✭ 125 (-92.35%)
Mutual labels:  xcode
Cloudkitgdpr
Framework for allowing users to manage data stored in iCloud
Stars: ✭ 126 (-92.28%)
Mutual labels:  xcode
Xcode Build Times
This BitBar/SwiftBar plugin shows the time you spend waiting for Xcode to do your builds
Stars: ✭ 122 (-92.53%)
Mutual labels:  xcode
Natrium
A pre-build (Swift) script to alter your Xcode project at pre-build-time per environment, build configuration and target.
Stars: ✭ 131 (-91.98%)
Mutual labels:  xcode
Luexpandabletableview
A subclass of UITableView with expandable and collapsible sections
Stars: ✭ 125 (-92.35%)
Mutual labels:  xcode
Testdrive
Quickly try out any Swift pod or framework in a playground
Stars: ✭ 1,612 (-1.29%)
Mutual labels:  xcode
Nine41
Automate overriding the status bars for all running iOS simulators
Stars: ✭ 124 (-92.41%)
Mutual labels:  xcode
Animate
Declarative UIView animations without nested closures
Stars: ✭ 124 (-92.41%)
Mutual labels:  xcode
Genericdatasource
A generic small reusable components for data source implementation for UITableView/UICollectionView in Swift.
Stars: ✭ 127 (-92.22%)
Mutual labels:  xcode
Backend
Backend is responsible to provide data to EVOlution App - iOS
Stars: ✭ 123 (-92.47%)
Mutual labels:  xcode
Xcode Time Tracker
Stars: ✭ 131 (-91.98%)
Mutual labels:  xcode
Whats New In Swift 5 1
An Xcode playground that demonstrates the new features introduced in Swift 5.1.
Stars: ✭ 122 (-92.53%)
Mutual labels:  xcode
Timliu Ios
iOS开发常用三方库、插件、知名博客等等
Stars: ✭ 10,898 (+567.36%)
Mutual labels:  xcode
Pesy
Project configuration for esy
Stars: ✭ 132 (-91.92%)
Mutual labels:  project-template
Cgoperators
Easily manipulate CGPoints, CGSizes and CGVectors using math operators
Stars: ✭ 131 (-91.98%)
Mutual labels:  xcode
Swiftdux
Predictable state management for SwiftUI applications.
Stars: ✭ 130 (-92.04%)
Mutual labels:  xcode

Logo

Liftoff is a CLI for creating and configuring iOS Xcode projects.

👋 We need your help! We're looking for contributors and people willing to take over Liftoff maintenance. If you're interested, we'd love to hear from you! 👍

Installation

brew tap liftoffcli/formulae
brew install liftoff

Liftoff was previously distributed via RubyGems. This method of installation has been deprecated, and all new releases will be done through Homebrew. If you are migrating from RubyGems, you should uninstall the gem version to avoid confusion in the future.

Usage

Run this command in a directory

liftoff

View the documentation:

man liftoff
man liftoffrc

When Liftoff finds an existing project in the current directory, it will perform the following configurations:

  • Set the indentation level (In spaces, 4 by default).
  • Treat warnings as errors for release schemes.
  • Enable warnings at the project level, check liftoffrc(5) for a list of the warnings.
  • Turn on Static Analysis for the project.
  • Add a build phase shell script that turns "TODO:" and "FIXME:" into warnings.
  • Add a build phase shell script that sets the version to the latest Git tag, and the build number to the number of commits on master.
  • Perform arbitrary configuration as defined in the user's liftoffrc. See liftoffrc(5) for more information.
  • Add default .gitignore and .gitattributes files.
  • Initialize a new git repo and create an initial commit (if needed).

When you run Liftoff in a directory without a project file, it will create a new directory structure for a project, and generate a well-configured Xcode project in that subdirectory:

$ cd ~/dev/
$ liftoff
Project name? MyCoolApp
Company name? thoughtbot
Author name? Gordon Fontenot
Prefix? MCA
Creating MyCoolApp
Creating MyCoolApp/Categories
Creating MyCoolApp/Classes
[snip]

Liftoff will generate a brand new project for you based on the provided values. Generating projects via Liftoff has these advantages:

  • Minimized time reorganizing the repository
  • Sets up git repository automatically
  • Defined group structure
  • Matching directory structure on disk (linked to the proper group)
  • Easily customizable
  • Configurations can be shared easily

Configuration

You can use a liftoffrc file to speed up your workflow by defining your preferred configuration for Liftoff.

Liftoff will look for config files in the local directory and then the home directory. If it can't find a key in ./.liftoffrc or ~/.liftoffrc, it will use the default values. Check liftoffrc(5) for more information:

man liftoffrc

You can see the current liftoffrc on master, but be aware that the keys might not match up completely with the current released version.

Directory Structure and Templates

One of the most powerful things that Liftoff can do for you is let you quickly and easily customize your project's group and directory structure. By defining a YAML dictionary inside your local or user .liftoffrc, you can completely dictate the structure that will be created. This includes group structure, order, placement of template files, etc. And remember that these groups will be mimicked on disk as well.

You can also create your own templates, or override the defaults by adding them to ~/.liftoff/templates or ./.liftoff/templates. Liftoff will use the same fallback order when looking for templates as it does for the .liftoffrc.

These files (and filenames) will be parsed with ERB, using the values provided at run time (or the default values from a liftoffrc).

Note about Xcode 7.0

In Xcode 7.0, there is a bug that when combined with a bug in Liftoff 1.5 results in a crash when trying to launch a project generated by liftoff. This bug is fixed in Liftoff 1.6, but if you have a project created with a version of liftoff <= 1.5, you might experience this crash.

To fix it:

  1. Open the project in Xcode 6 or Xcode 7.1+
  2. Remove Main.storyboard from the project (only need to remove the reference, you don't need to trash the file itself)
  3. Re-add Main.storyboard to the project

Your project should now open cleanly in Xcode 7.0.

Contributing

See the CONTRIBUTING document. Thank you, contributors!

We'd also love some help for maintaining Liftoff up-to-date on a more regular basis. If you're interested, we'd love to hear from you!

License

Liftoff is Copyright (c) 2015 thoughtbot, inc. It is free software, and may be redistributed under the terms specified in the LICENSE file.

About

thoughtbot

Liftoff was originally maintained and funded by thoughtbot, inc. The names and logos for thoughtbot are trademarks of thoughtbot, inc.

Similar projects

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].