YASMF-Next, or Yet Another Simple Mobile Framework (Next Generation), provides a simple, lightweight framework for mobile applications, especially those based on webkit browsers.
Many of the frameworks that support mobile development are large and bulky, and several tend to have poor performance on actual mobile devices. The goal of YASMF-Next is to be simple and limited in scope while also being performant on mobile devices.
YASMF-Next (v0.5) is based loosely on iSiteMobile and the previous version (0.2 and 0.3) of YASMF and also integrates some ideas from the native iOS SDK, especially with regards to view hierarchy and management. YASMF-Next provides a simple localization library, promise-wrapped file management, and simple view management, and base styles to simplify creating HTML-based widgets that look and feel reasonably native.
Note: YASMF is at version 0.5 and is under heavy development. This means that the underlying API is subject to change at any time.
YASMF v0.2 has been used in production-level applications, and so is useable in your own application development. v0.5 is more than a little fresh, so take care. There may just be dragons about.
Also note: v0.4 (available in the 0.4 branch) is STABLE and will not change.
- Android: Android 4.x and higher. Works on phone and tablets.
- iOS: iOS 6.x and higher. Works on iPhone, iPod, and iPad.
- Webkit: Chrome, Safari, etc.
Note: Requires Cordova / PhoneGap 3.0 or higher or Chrome 31+ if the FileManager is used.
Documentation can be found in several locations:
- Use of YASMF-Next
- YASMF Documentation
- Local YASMF Documentation is under
./doc
and./wiki
- AMD support
- Relatively small code base (easy to grok)
- Performant on mobile devices
- Uses CSS transforms and animations where possible
- Classical Object Inheritance
- KVO-like Observable Properties
- Notifications and Listeners
- Useful utility modules:
- Date/Time handling
- File name handling
- HTML5 File API wrapped with Promises (using Q)
- Device sniffing / handling
- Localization (formatting by jQuery/Globalize)
- DOM convenience methods
- User Interface:
- Simple View Containers
- Navigation Controllers (push/pop)
- Split View Controllers (normal split, off-canvas view, split-overlay)
- Navigation bars
- Tool Bars
- Tinted Glyphs
- Bar Buttons
- Scroll containers
- 0.5
- Routers
- MVC base objects
- Object categories
- Automatic Notification Handler Hookup
- Additional widgets
- Future
- Table view w/ infinite scrolling and cell re-use
- Data binding
- Enhanced templating
- 0.5 (TBD)
- Added
on
,off
as synonyms foraddListenerForNotification
andremoveListenerForNotification
on
andoff
can be chained.on
andoff
can be supplied a list of handlers in an object.- Added
emit
,emitToLast
as synonyms fornotify
andnotifyMostRecent
- Notification handlers are now bound to
self
, and additional arguments are now applied - Wildcard notification handlers are now supported:
*
receives all notifications,*Changed
receivesvalueChanged
but notchangedThat
,view*
receivesviewWillAppear
, andns:*Changed
receivesns:valueChanged
. The handler is called withself
,notification
, and any arguments sent. - Errors are now logged to the console if a notification generates an uncaught exception.
- Notifications can now be listed for even if they aren't registered. By default these are synchronous transactions. (Pass
true
to the third parameter if you need async). - Added h, the simple templating engine under
yasmf.h
. h supports data binding objects based on BaseObject. - Added
promote
to BaseObject -- takes normal objects and returns a promoted BaseObject (useful for binding) - Formatting, missing semicolons, that jazz. Added eslint and jscs preference files.
- Added
serve.sh
(assumes http-server is installed) - Added
yasmf.Router
for simple app-wide router handling (hashtag & history API based) - Added
self.$super
,self.$class
, andself.$superclass
for easy inheritance method calling. Can callself.$super(args...)
in methods overridden usingself.override
. - Added data binding
- Added
- 0.4 (May 2014)
- First release of YASMF-Next
- 0.3 (Nov 2013)
- Refactor attempt of YASMF (aborted in order to start over from scratch)
- 0.2 (Aug 2012)
- Initial release of YASMF
- 0.1 (May 2011)
- iSiteMobile release
YASMF-Util is MIT licensed.
Copyright (c) 2013, 2014 Kerri Shotts, photoKandy Studios LLC
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.