The Ignite Engine is a platform for rapidly building native mobile apps using declarative JSON to build views, controllers, and logic. The stability and robustness of the engine frees you to focus on the functionality and design of your app.
You can start building apps for iOS today; we're working hard to bring the platform to Android very soon.
$ sudo gem install cocoapods
to install the CocoaPods CLI.This is the best way to start learning the Ignite Engine: it doesn't require fiddling around with setting up a new Xcode project.
Download the Ignite Engine starter kit.
Unzip the downloaded folder and move it into a place you'll remember (like ~/Development
!).
Open Terminal and $ cd
to the new folder (like $ cd ~/Development/IgniteEngineStarterKit
).
Run $ pod install
to magically download and install all the dependencies.
Open the IgniteEngineStarterKit.xcworkspace
file and run the app in the iOS simulator.
Get up to speed by reading the docs.
* If you have a super awesome Internet connection. Otherwise it might take a couple minutes ;)
If you want to learn how to build your own project from scratch and integrate the Ignite Engine, then these steps are for you!
Open Xcode 6.
Create a new Single View Application.
Delete Main.storyboard
(select it, right-click, and choose "Move to Trash").
Open Supporting Files/Info.plist
:
Remove the property named Main storyboard file base name
.
Add a new property named IXApp
with the value app.json
(modify this property's value if required).
Add a new property named IXAssets
with the value assets
(modify this property's value if required).
Delete ViewController.h
and ViewController.m
.
Create an empty file named podfile
in the root of your project folder with the following text:
pod 'IgniteEngine'
(If you're feeling adventurous and know what you're doing, you can also point this pod directly to the GitHub repo).
Open Terminal, and from your project directory, run $ pod install
Once the IgniteEngine pod and all its dependencies have been installed, open {MyProject}.xcworkspace
from the root of your Xcode project folder. And yes, that's .xcworkspace
. The .xcodeproj
file will not work.
Open main.m
:
#import IXAppDelegate.h
at the top.AppDelegate
class to be IXAppDelegate
instead.Open AppDelegate.h
:
#import IXAppDelegate.h
at the top.@interface
declaration with: @interface AppDelegate : IXAppDelegate
.@property (strong, nonatomic) UIWindow *window;
.Open AppDelegate.m
:
[super *methodname*]
before your own functions.Create a new folder in your project root called assets
. Drag this folder into Xcode, deselecting Copy items if needed and selecting Create folder references.
Your IX config will reside in this assets folder. At minimum, you need an app.json
file and that points to a single view, like so:
{
"$app": {
"attributes": {
"defaultView": "myView.json"
}
}
}
Get up to speed by reading the docs.
/assets
, you should add Pods/**
to your .gitignore
to avoid commiting your dynamic dependencies to your repo.We didn't make the Ignite Engine open source for nothing! Dig in, get your hands dirty, and submit a pull request.
Clone this repo into somewhere sensible like ~/Development/IgniteEngine-iOS
.
Make a copy of the /Example
project folder and put it somewhere sensible like ~/Development/MyIgniteDevProject
(or make a new one following the steps above).
Edit the podfile
inside /MyIgniteDevProject
to use a local :path
declaration:
pod 'IgniteEngine', :path => '~/Development/IgniteEngine-iOS'
Run pod install
to update your IgniteEngine pod
Open {MyApp}.xcworkspace
from inside your new /MyigniteDevProject
folder.
From the project navigator, expand the Pods
project and expand Development Pods > IgniteEngine
.
Here you'll find everything you need to get started developing. Because this folder is a symbolic link to your project clone, modifications made inside the Development Pods
folder will automagically update your git repo.
We use the 'fork-and-pull' methodology, so please commit your changes to a branch (like dev
) on your personal fork and submit a pull request. Accidents happen though, so we added a pre-commit script that you can use to block commits to master
. Add it to your local repo like so:
$ cd ~/Development/IgniteEngine-iOS/.git
$ mkdir hooks
$ cd hooks/
$ ln -s ../../.pre-commit.sh pre-commit
The Ignite Engine uses the following CocoaPods:
Note: additional licenses may apply for these dependencies
The MIT License (MIT)
Copyright (c) 2015 Apigee Corporation
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.