Permalink
Browse files

Hello World.

  • Loading branch information...
0 parents commit ac6ba988f93695f5851fd2c8457f56f2cf8b27ae @gliechtenstein gliechtenstein committed Oct 31, 2016
Showing 1,023 changed files with 219,319 additions and 0 deletions.
@@ -0,0 +1,39 @@
+# Mac OS X Finder and whatnot
+.DS_Store
+
+# XCode (and ancestors) per-user config (very noisy, and not relevant)
+*.mode1
+*.mode1v3
+*.mode2v3
+*.perspective
+*.perspectivev3
+*.pbxuser
+xccheckout
+xcuserdata/
+project.xcworkspace/
+
+# Generated files
+VersionX-revision.h
+*.orig
+
+# build products
+build/
+build/*.[oa]
+
+# Other source repository archive directories (protects when importing)
+.hg
+.svn
+CVS
+
+# automatic backup files
+*~.nib
+*.swp
+*~
+*(Autosaved).rtfd/
+Backup[ ]of[ ]*.pages/
+Backup[ ]of[ ]*.key/
+Backup[ ]of[ ]*.numbers/
+
+Documents/Test[ ]Runs/
+
+Carthage
@@ -0,0 +1,76 @@
+# How to contribute to Jasonette
+
+## **Do you have a bug report or a feature request?**
+
+* **Ensure the bug was not already reported** by searching on GitHub under [Issues](https://github.com/Jasonette/JASONETTE-iOS/issues).
+
+* If you're unable to find an open issue addressing the problem, [open a new one](https://github.com/Jasonette/JASONETTE-iOS/issues/new). Be sure to include a **title and clear description**, as much relevant information as possible, and a **code sample** or an **executable test case** demonstrating the expected behavior that is not occurring.
+
+
+## **Did you write a patch that fixes a bug?**
+
+* Open a new GitHub pull request with the patch.
+
+* Ensure the PR description clearly describes the problem and solution. Include the relevant issue number if applicable.
+
+## **Did you write a cool extension?**
+
+Feel free to fork the project and [write your own extension](https://jasonette.github.io/documentation/advanced)
+
+If you wrote a cool extension, please share it with the community in the [slack channel](https://jasonette.herokuapp.com).
+
+## **Do you have other types of questions?**
+
+* Ask any question about how to use Jasonette on the [Jasonette Slack channel](https://jasonette.herokuapp.com).
+
+## **Project Structure**
+
+### Class hierarchy
+![hierarchy](https://raw.githubusercontent.com/gliechtenstein/images/master/hierarchy.png)
+
+Here's a brief walkthrough of how the project is structured:
+
+ - **Launcher**: You can ignore this, just some files that launches the app.
+ - **Config**: Normally these are the only files you will ever need to touch.
+ - `Info.plist`: App setting. Normally don't need to touch this unless you're manually setting up stuff.
+ - `settings.plist`: **This is the only file you will ever need to change.** Set the `url` attribute to embed that URL into the app.
+ - **Core**: Core logic that handles command processing (via stack, memory, etc.), view construction, templating, and some native system actions.
+ - `Jason`: The brain of Jasonette. Everything revolves around this class. Makes use of JasonStack and JasonMemory for remembering and executing actions.
+ - `JasonStack`: Stack for remembering instructions (actions).
+ - `JasonMemory`: Used to store actions to be executed, through stack (JasonStack) and register.
+ - `JasonParser`: Parser module that calls the `Core/Lib/parser.js` file for parsing json templates.
+ - `RussianDollView`: A JasonViewController protocol, you can ignore this.
+ - **Assets**: You can ignore this, just some images and audio clips used by the app
+ - **Lib**: Includes Javascript libraries used to execute JSON native actions.
+ - `parser.js`: The main JSON parser that takes a JSON template expression and generates a final static JSON using the current register value
+ - `csv.js`: CSV parser
+ - `rss.js`: RSS parser
+ - **Action**: Where all [actions](https://jasonette.github.io/documentation/actions/) are implemented. The implementation follows [the convention described here](https://jasonette.github.io/documentation/advanced/#2-extend-actions).
+ - To build your own action extension, you can create your own custom group here and implement your own classes.
+ - **View**: All view related classes.
+ - `JasonViewController`: The main JSON-powered view controller. Everything view-related revolves around this class.
+ - **Layer**: Implements [layers](https://jasonette.github.io/documentation/document/#bodylayers)
+ - **Section**: Implements [sections](https://jasonette.github.io/documentation/document/#bodysections)
+ - **Layout**: Implements [vertical and horizontal layouts](https://jasonette.github.io/documentation/layout/) that can be used inside [sections](https://jasonette.github.io/documentation/document/#bodysections)
+ - **Component**: Implements [componenets](https://jasonette.github.io/documentation/components/), following [the convention described here](https://jasonette.github.io/documentation/advanced/#1-extend-ui-components).
+ - To build your own component extension, just create your own group here and write your classes.
+ - **Helper**
+ - Various helper class methods used across various classes.
+
+### What files you will be touching
+
+####User
+In most cases, the only thing you will ever need to touch is the `Config/settings.plist` file. This is where you set the main url your app will launch from.
+ - But even this can be automatically done using the [Setup command](https://jasonette.github.io/documentation/#step-2-setup), which means **you will never need to touch anything inside XCode** to build an app.
+
+####Advanced
+Sometimes you may want to write an [extension](https://jasonette.github.io/documentation/advanced/#extension). In this case you may need to deal with:
+ - `Action`: To write action extension
+ - `View/Component`: To write UI component extension
+
+####Guru
+If you find a bug **anywhere in the code**, or have any improvements anywhere else, please feel free to:
+ 1. Fork the `develop` branch
+ 2. Create a feature branch
+ 3. Fix
+ 4. Send a pull request
@@ -0,0 +1,110 @@
+[![logo](https://raw.githubusercontent.com/gliechtenstein/images/master/jasonette.png)](http://www.jasonette.com)
+
+# [Jasonette](https://www.jasonette.com)
+
+[https://www.jasonette.com](https://www.jasonette.com)
+
+Create your own native iOS app with nothing but JSON. Then send it over the Internet.
+
+##★ Jasonette fetches this JSON markup from a server:
+
+![json](https://raw.githubusercontent.com/gliechtenstein/images/master/json.png)
+
+##★ And self-constructs into the following app, in realtime:
+
+![instagram](https://github.com/Jasonette/Instagram-UI-example/blob/master/images/instagram.gif)
+
+<br>
+
+#Cool things about Jasonette
+
+- **App loads over HTTP**: Your app exists 100% as JSON, and loads from the cloud. No more hard-coding.
+- **An app in 30 minutes**: No kidding, build an app in 30 minutes.
+- **Lowest possible learning curve**: No programming experience required. There's only one thing you need to know: JSON. Which means you can build an app without "becoming a programmer".
+
+<br>
+
+# [Quickstart](https://www.jasonette.com)
+Visit [the website](http://www.jasonette.com) to get started.
+
+<br>
+
+# More Examples
+Try playing these on Jasonette and watch them turn into native apps in front of your eyes!
+
+* [Jasonpedia](https://github.com/Jasonette/Jasonpedia) Tutorial demo app that includes all Jasonette feature implementations.
+* [Instagram](https://github.com/Jasonette/Instagram-UI-example) An Instagram UI, 100% powered by JSON.
+* [Twitter](https://github.com/Jasonette/Twitter-UI-example) A Twitter UI, 100% powered by JSON.
+
+<br>
+
+# Technical Highlights
+
+##1. One JSON to rule them all
+
+Jasonette simplifies the entire app building process down to nothing more than:
+
+1. Write a JSON markup
+2. Add the JSON url to Jasonette
+3. Press `play`
+
+This is possible because Jasonette came up with a way to **fit an entire app worth of logic into a single declarative JSON that just works™.** This JSON grammar is used to express **every aspect of your app**, such as:
+
+1. Draw sophisticated [**views**](https://jasonette.github.io/documentation/document)
+2. Call [**device API methods**](https://jasonette.github.io/documentation/actions/#api)
+3. Chain method calls to [**perform complex logic**](https://jasonette.github.io/documentation/actions/#b-handling-another-actions-result)
+4. Respond to [**system events**](https://jasonette.github.io/documentation/actions/#system-events) and [**user interaction**](https://jasonette.github.io/documentation/actions/#a-handling-user-interaction)
+5. Even change the JSON itself dynamically using [**templates**](https://jasonette.github.io/documentation/templates).
+
+<br>
+
+##2. App-over-HTTP
+Until now, the only thing JSON could send over the Internet was raw data. Normally apps would fetch remote data from the server for a connected experience, but the actual app logic would be hard-coded on the client side. This makes it hard to update and extend apps.
+
+But what happens when you can express an entire app logic as JSON?
+
+**Then apps can be stored, processed, shared, and sent over the Internet just like any other JSON.** Watch below where we update the JSON on a [JSON pastebin server](https://www.jasonbase.com), and the app changes immediately to reflect the new markup:
+
+![remote control](http://i.giphy.com/3o7TKrdmlX5uD7RszK.gif)
+
+<br>
+
+##3. Designed to be extended or integrated
+Currently Jasonette covers all the essential native APIs and components, which means you can build pretty much any app you can imagine. But Jasonette is very flexible.
+
+###A. Extensible
+If you don't see a feature you want, you can simply [extend Jasonette](https://jasonette.github.io/documentation/advanced/#extension-vs-integration). If it's useful for the general public, we can even merge it into the core.
+
+###B. Integrate existing code
+You can even [integrate Jasonette with your existing iOS project](https://jasonette.github.io/documentation/advanced/#extension-vs-integration) if you want. This way you can use Jasonette for just a small part of your app without having to completely switch to a new way of programming.
+
+<br>
+
+# Bugs and feature requests
+
+Have a bug or a feature request regarding the Jasonette code itself? [Please open a new issue](https://github.com/Jasonette/JASONETTE-iOS/issues/new).
+
+<br>
+
+# Questions and Support
+For questions and support, please use the [Slack chatroom](https://jasonette.herokuapp.com)
+
+[![slack](https://raw.githubusercontent.com/gliechtenstein/images/master/slack.png)](https://jasonette.herokuapp.com)
+
+<br>
+
+# Stay in touch
+To keep updated on latest releases and announcements,
+
+- Follow on Twitter [@jasonclient](https://twitter.com/jasonclient)
+- [join our slack](https://jasonette.herokuapp.com)
+
+<br>
+
+# Contribute
+There are many ways to contribute. But first, please [read the contributing guideline](CONTRIBUTING.md)
+
+<br>
+
+# License
+Jasonette is released under the [MIT License](http://www.opensource.org/licenses/MIT).
Oops, something went wrong.

0 comments on commit ac6ba98

Please sign in to comment.