Emy - Efficient Mobile web librarY
Emy is a single-page application library, which means all "views" are part of the HTML onload. Then its anchor-based navigation mechanism deals with sliding between views, keeping support & sync with the browser/device navigation stack (aka browser's back button).
<body> <header class="toolbar"> <div><a id="backButton" class="button" href="#"></a></div> <h1 id="viewTitle"></h1> </header> <section id="first" data-title="First View" selected="true"> <a href="#second">Go to second view</a> </section> <section id="second" data-title="Second View" class="panel"> My second view. </section> </body>
Feel free to test this code live on Codio.
Of course, external/additionnal views can be added after onload, by linking to an external html document.
<body> <header class="toolbar"> <div><a id="backButton" class="button" href="#"></a></div> <h1 id="viewTitle"></h1> </header> <section id="first" data-title="First View" selected="true"> <a href="second.html">Go to second view</a> </section> </body>
<section id="second" data-title="Second View" class="panel"> My second view. </section>
For further reading, check out this full getting started tutorial on our website.
Nothing fancy, we just create a few demo apps to show how easy you can create apps using Emy.
- Interface demo: showcases all UI elements included by default in Emy
- Playing with forms: to show how GET and POST form submission works
- Music app: deep navigation example
- Contact app: Offline capable static app
- Notes app: Offline capable + dynamic content + custom theme
- Maps app: Using third party APIs + onshow / onexit views events
- Facebook app: Generating elements based on API callbacks
- Instagram app: Responsive web design layout (yes, double tap to like/dislike works)
- Chat app: Based on Firebase.io DaaS - Emy meets WebSockets & realtime communication
Themes & extensions
Emy is lightweight & simple but you can get some extensions & themes to enhance features or change its look'n'feel.
You can expect a full & smooth experience on:
- iOS 6.x and above
- Android 4.x and above
- Blackberry 7, 10 and above
- WindowsPhone 8 and above
- Firefox OS 1.3 and above
It even works fine on desktop Safari, Chrome, Firefox & Internet Explorer 10 and above.
You might get some UI bugs yet have a functionnal app on "old" platforms as:
- iOS 5.x
- Android 2.3.x
- Blackberry 6
- WindowsPhone 7.5
- Firefox OS 1
- Latest Symbian series
- Opera Mobile
But we clearly have no plan to support IE < 10, Blackberry 4.x or NetFront.
You can contribute to the project by reporting issues, suggesting new features, or submitting pull requests. Give the Get involved page a look to find out how.