iOS Icon

iOS

iOS is the operating system for Apple's mobile products.
55 Stories
All Topics

iOS changelog.com

MGTileMenu - pop-up tile-based contextual menu for iOS5

MGTileMenu is an innovative context menu for iOS from Matt Gemmell. Resembling Path’s oft imitated corner menu in some respects, it appears to be more contextual than navigational, as the screencast demonstrates: Matt’s introductory blog post provides a deep introduction on the design or you can grab the source on GitHub. The license requires attribution, or you can purchase a non-attribution license online.

read more...

iOS changelog.com

Ruby Motion Samples - Write iPhone Apps In Ruby

RubyMotion was just released by Laurent Sansonetti, the creator of MacRuby. RubyMotion lets you write iOS apps in Ruby! RubyMotion is a revolutionary toolchain for iOS. It lets you quickly develop and test native iOS applications for iPhone or iPad, all using the awesome Ruby language you know and love. RubyMotion is a commercial product with introductory pricing of $149. We wanted to cover it on The Changelog anyway since it’s such an exciting new tool with an open source heritage. Writing Objective-C in Ruby is really fantastic, especially for Ruby engineers new to iOS. You can use all of the Ruby features like mixins, monkey patching, etc but on Objective-C objects. So when you make a string, it’s really an NSMutableString which is a Ruby String in MacRuby. Probably the coolest thing about RubyMotion is that it statically compiles your Ruby code so it doesn’t have to include the entire Ruby source and an interpreter. In theory, it should be just as fast as Objective-C code. RubyMotion even has an interactive REPL. See it in action in their demo. Skip to 3:58 in if you just want to see the REPL. There’s a ton of stuff in RubyMotion that is just fantastic like the build system, REPL, testing, etc. Read my full review on my blog. Also, there are several sample applications on GitHub.

read more...

iOS changelog.com

Bwoken - iOS UIAutomation testing in CoffeeScript

Testing iOS apps is hard. Apple’s UI Automation lets you write test scripts in JavaScript and simulate user interaction, but who wants to hang out in the Instruments GUI app? Bendyworks has improved on the process, however, bringing the simplicity of Rake and the elegance of CoffeeScript to your UI Automation tests: #import "../../../../Pods/tuneup_js/tuneup.js" #import "helpers/TravisCI.js" test 'Favoriting a repository', (target, app) -> RepositoriesScreen.tapRepositoryNamed 'CITravis by Travis-ci' BuildsScreen.addToFavorites(app) BuildsScreen.back() RepositoriesScreen.tapFavorites() FavoritesScreen.assertFavoriteNamed 'CITravis by Travis-ci' FavoritesScreen.tapAll() test 'Unfavoriting a repository', (target, app) -> RepositoriesScreen.tapFavorites() FavoritesScreen.assertFavoriteNamed 'CITravis by Travis-ci' FavoritesScreen.tapFavoriteNamed 'CITravis by Travis-ci' BuildsScreen.removeFromFavorites(app) BuildsScreen.back() FavoritesScreen.assertNoFavoriteNamed 'CITravis by Travis-ci' FavoritesScreen.tapAll() This single test can be run from the command line with: $ RUN=iphone/favorites rake Check out the project website, source on GitHub, or introductory video for more. Also be sure to check out their TravisCI.app, a mobile client for Travis CI, for a real-world example.

read more...

iOS changelog.com

DCIntrospect - Inspect Element for iOS views

Web developers have long enjoyed the “Inspect Element” features of Firebug and WebKit developer tools to poke around inside their pages at runtime. Patrick Richards, a mobile developer from down under, has created DCIntrospect, a library of visual debugging tools for iOS. Once added to your project, DCIntrospect listens for shortcut keys to toggle view outlines, nudge views on screen, toggle view visibility, print view properties to the console, and more. To use, be sure you’ve set the DEBUG environment variable. It’s also a good idea to target the simulator explicitly, even though DCIntrospect will work on the device as well. [window makeKeyAndDisplay] // always call after makeKeyAndDisplay. #if TARGET_IPHONE_SIMULATOR [[DCIntrospect sharedIntrospector] start]; #endif Check out the source on GitHub for a full list of keybindings and instructions on how to customize.

read more...

iOS changelog.com

MBRequest - Easier API wrappers in iOS and OSX

A good API wrapper should handle network transport, payload serialization/deserialization, and authentication, abstracting these details away in order to let the developer deal with the business domain of the API. Projects like Faraday, Requests, and others have made creating higher level wrappers much easier. MBRequest from Mobiata does the same for iOS and OSX: NSURL *url = [NSURL URLWithString:@"https://gdata.youtube.com/feeds/api/standardfeeds/top_rated?alt=json?time=this_week"]; NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:url]; [urlRequest setValue:@"gzip" forHTTPHeaderField:@"Accept-Encoding"]; MBJSONRequest *jsonRequest = [[[MBJSONRequest alloc] init] autorelease]; [jsonRequest performJSONRequest:urlRequest completionHandler:^(id responseJSON, NSError *error) { if (error != nil) { NSLog(@"Error requesting top-rated videos: %@", error); } else { NSArray *videos = [[responseJSON objectForKey:@"feed"] objectForKey:@"entry"]; for (NSDictionary *videoInfo in videos) { NSString *title = [[videoInfo objectForKey:@"title"] objectForKey:@"$t"]; NSString *author = [[[[videoInfo objectForKey:@"author"] objectAtIndex:0] objectForKey:@"name"] objectForKey:@"$t"]; NSLog(@"'%@' by %@", title, author); } } }]; Check out the examples folder in the project source for implementation ideas.

read more...

iOS changelog.com

JTGestureBasedTableView - Buttonless interface for iOS like that found in Clear

A great effort by mobile developer James Tang to recreate that innovative UI pattern found in Clear: The README provides sample code to set up your UITableView and enable gesture recognition: #import "JTTableViewGestureRecognizer.h" @interface ViewController () <JTTableViewGestureAddingRowDelegate, JTTableViewGestureEditingRowDelegate> @property (nonatomic, strong) NSMutableArray *rows; @property (nonatomic, strong) JTTableViewGestureRecognizer *tableViewRecognizer; @end @implementation ViewController @synthesize tableViewRecognizer; - (void)viewDidload { /* : */ // In our examples, we setup self.rows as datasource self.rows = ...; // Setup your tableView.delegate and tableView.datasource, // then enable gesture recognition in one line. self.tableViewRecognizer = [self.tableView enableGestureTableViewWithDelegate:self]; } ... If you haven’t seen the Clear interface, be sure and check out the video demo: Sample source on GitHub.

read more...

iOS changelog.com

iOS-boilerplate: A base boilerplate template for iOS

iOS Boilerplate is a base template for iOS apps inspired by HTML5 boilerplate. iOS Boilerplate is tested on iPhone / iPod Touch devices with iOS 4.0 or greater. In a future it might support universal applications (iPhone + iPad) As of this posting, iOS Boilerplate is just an XCode project and is planned to be released as a true XCode template in the near future. Check out the source on GitHub and the project's homepage for more details.

read more...

iOS changelog.com

scrollability: Native scrolling for the mobile web

Perhaps even more than advanced features like GPS, camera access, contacts, and App stores, the lack of viewport-aware position:fixed is what drives many apps to be developed as a native experience. Joe Hewitt who brought us Firebug and the Facebook iPhone app has released Scrollability, a single script with no external dependencies that allows developers to achieve near-native feeling scrolling, just by adding a few CSS classes to their markup. In just a few hours of its release, the project has over 250 watchers on GitHub. Joe includes a simple demo for iOS devices that demonstrates super smooth scrolling as well as fixed header and footer elements. [Source on GitHub]

read more...

iOS changelog.com

Node.js on your (jailbroken) iPhone

Nathan “Too Tall” Rajlich has gotten Node.js to run his jailbroken iPhone 4. If you’ve got SSH access on a jailbroken phone, simply extract the .deb package: dpkg -i node-v0.4.5-ios-arm-1.deb Now you can see if Node is running: $ node > require('os').cpus() [ { model: 'N90AP', speed: 0, times: { user: 9209240, nice: 0, sys: 6997410, idle: 255377220, irq: 0 } } ] Nate has created node-iOS to play with iOS-specific functionality with Node bindings: var iOS = require('iOS'); iOS.vibrate(); // Quick vibrate, like when you receive text message if (iOS.compass.available) { // true if the iDevice has a digital compass iOS.compass.on('heading', function(heading) { console.log(heading.magneticHeading); // Degrees relative to magnetic north }); } Of course if you want to play with Node on mobile without jailbreaking your phone, Node.js powers the JavaScript services in WebOS. [Source on GitHub] [Blog post]

read more...

iOS changelog.com

UIDickBar: Annoying Twitter style #dickbar for your iOS apps

Ever wanted to add an obtrusive Dickbar to your iOS apps? Wait no more, for Ching-Lan HUANG 黃青嵐 AKA @digdog has packaged up this UI tragedy for you to use in less than ten lines of Objective-C: UIDickBar *dickBar = [[UIDickBar alloc] initWithDickTitle:@"#DickBar" dickBadge:@"Stupid" actionBlock:^{ // Anything you want to do after UIDickBar tapped [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://digdog.tumblr.com"]]; }]; [dickBar showInView:self.view]; [dickBar release]; [Source on GitHub] [Blog post]

read more...

iOS changelog.com

Titanium Modules: Starter pack for extending Appcelerator Titanium

If you caught Episode 0.0.8 with Marshall Culpepper, then you already know that Appcelerator Titanium Mobile is a great way for JavaScript developers to write native mobile applications for iOS and Android without needing to learn Objective-C or Java. However, if you do speak Objective-C or Java you might not know you can extend Titanium and provide JavaScript hooks for your own code that you might want to share with other projects (and even other folks) via custom modules. You can even build extensions in JavaScript as well. The Ti+Plus Modules Starter Pack is a bundle of sample projects demonstrating how to extend Titanium. The source code for these projects augment the iOS module development and Android module development guides on the Titanium documentation site. Be sure to check out the sample source for Flurry, Paint, and this one from AdMob: #import "TiAdmobModule.h" #import "TiBase.h" #import "TiHost.h" #import "TiUtils.h" @implementation TiAdmobModule // this is generated for your module, please do not change it -(id)moduleGUID { return @"0d005e93-9980-4739-9e41-fd1129c8ff32"; } // this is generated for your module, please do not change it -(NSString*)moduleId { return @"ti.admob"; } #pragma mark Lifecycle -(void)startup { // this method is called when the module is first loaded // you *must* call the superclass [super startup]; NSLog(@"[INFO] AdMob module loaded",self); } -(void)shutdown:(id)sender { // this method is called when the module is being unloaded // typically this is during shutdown. make sure you don't do too // much processing here or the app will be quit forceably // you *must* call the superclass [super shutdown:sender]; } If you’d like to get started with Titanium Mobile, I’ll be joining Kevin and Marshall at Red Dirt Ruby Conf and doing a special Zero-to-App training session to get you up and running with Titanium. We’ll even throw in a little CoffeeScript.

read more...

iOS changelog.com

X-Callback-URL: URL specification for iOS interapp communication

URLs are one of those things about the web that we often take for granted. As developers, we can request resources and send users to other destinations just by knowing a location on the Internet. The mobile landscape is a bit different. While most mobile applications speak Web, consuming REST-ful APIs and other web resources, quite often they’re little silos of vertical, site or brand-specific functionality. Did you know that for iOS developers Apple makes it possible to register your own URL scheme, as in this Gowalla example: Launch with gowalla:// Open Paddington Station spot gowalla://spots/19264 Open pengwynn user 123 gowalla://users/pengwynn Open Walt Disney World Resort trip gowalla://trips/24622 The list of known iOS applications supporting OpenURL is growing daily. Beyond application launching As handy as these custom iOS URL schemes are in launching other applications, mobile developer Greg Pierce wants to the community to extend the idea of custom URL schemes and adopt a standard for inter-app communication. X-Callback-URL is a draft specification for one-way and two-way communication between mobile apps on iOS and looks like this: [scheme]://[host]/[version]/[action]?[x-callback parameters]&[action parameters] Let’s look at a real world example from Greg’s popular Terminology, a language reference app for iPhone and iPad: terminology://x-callback-url/1.0/lookup?text=a%20good%20deal scheme: The app’s custom URL scheme, terminology in the above example host: Callback URLs are identified by a host value of x-callback-url version: The X-Callback-URL spec version, currently 1.0 action: The action to perform in the target app. In this case, Terminology will perform a lookup action. x-callback parameters: Optional. Not used in this example action parameters: The parameters to pass to the executing action, “a good deal” in this example This approach provides a robust way to not only launch an app, but also request that the app handle an action, which may or may not have a UI associated with it. Two-way communication The real power of X-Callback-URLs lies in two-way inter-app communication. By using the x-callback parameters in the spec, we can ask the target app to call us back on our own URLs, even handling success and error scenarios. Sort of like custom HTTP headers, these callback parameters are identified with an x- namespace: x-source : The friendly name of the source app calling the action. If the action in the target app requires user interface elements, it may be necessary to identify to the user the app requesting the action. x-success : If the action in the target method is intended to return a result to the source app, the x-callback parameter should be included and provide a URL to open to return to the source app. On completion of the action, the target app will open this URL, possibly with additional parameters tacked on to return a result to the source app. If x-success is not provided, it is assumed that the user will stay in the target app on successful completion of the action. x-error : URL to open if the requested action generates an error in the target app. This URL will be open with at least the parameters “errorCode=code&errorMessage=message. If x-error is not present, and a error occurs, it is assumed the target app will report the failure to the user and remain in the target app. Here’s how you’d build a URL to allow your users to select some text in your app, choose a replacement in Terminology, and have to return back to your app. terminology://x-callback-url/1.0/replace?text=white&x-source=MyAppName&x-success=myappurl://x-callback-url/1.0/returnAction Greg has a great screencast that demonstrates the process end-to-end: Be sure and check out the full documentation for all of Terminology’s callbacks on Greg’s site as well as implemenation examples on GitHub. If you decide to implement X-Callback-URL in your application, please add it to the directory so the community knows how to integrate with you. [Source on GitHub] [Home page] [@xcallbackurl on Twitter] [Discuss on HackerNews]

read more...

iOS changelog.com

treesaver: HTML5, JavaScript library for creating magazine style layouts for iPad and web

A new breed of mobile devices led by the Apple iPad are changing the way we think about web layout. Applications like Flipboard and Feedly have led the charge in a resurgence of magazine-style layouts both on the web and on the tablet. Treesaver from Filipe Fortes is a new JavaScript framework for creating magazine-style layouts using standards-compliant HTML and CSS. Weighing in at just 25KB, Treesaver’s feature set is impressive providing support for grid and column layouts, custom UI’s, repeating content, cover pages, figures and illustrations, and analytics. The Treesaver wiki has a nice walkthrough to get you started and the project ships with an HTML boilerplate for both your content: <!doctype html> <html class="no-js no-treesaver"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,height=device-height,initial-scale=1,minimum-scale=1,maximum-scale=1"> <title>Sample Treesaver Page</title> <link rel="stylesheet" href="style.css"> <link rel="resources" href="resources.html"> <script src="treesaver-0.9.0.js"></script> </head> <body> <article> <p>This markup is an example of a page using Treesaver for layout. It is not very exciting right now.</p> </article> </body> </html> and your resources: <!doctype html> <html> <body> <div class="chrome"> <div class="viewer"></div> </div> <div class="grid"> <div class="column"></div> </div> <div class="loading"> Loading </div> <div class="error"> Error </div> </body> </html> Be sure and check out the impressive demos, especially on the iPad. With this first public release, Filipe admits the project still needs a lot of work. But the GitHub repo has a deep wiki and is very active. If you’re interested in contributing, you can help knock out the growing list of bugs and features. [Source on GitHub] [Homepage]

read more...

iOS changelog.com

nib2objc: Convert iPhone NIB files into Objective-C code

Interface Builder is one of the coolest things about Cocoa development. Being able to draw your interfaces visually can save you tons of otherwise tedious code to create layouts and set visual styles for your user interface elements. Adrian Kosmaczewski, iPhone and iPad developer and creator of Device DNA and several other apps in the App Store turned us on to nib2objc, which is a brilliant name because it takes NIB (or XIB) files from Interface Builder and converts them to Objective-C. To run from the command line, simply run nib2objc, passing the path to your NIB file: nib2objc yourfile.xib > code.m The output is a rather nice looking set of UIKit objects and property assignments to match values from your NIB: // ... UIView *view6 = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 460.0)]; view6.frame = CGRectMake(0.0, 0.0, 320.0, 460.0); view6.alpha = 1.000; view6.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; view6.backgroundColor = [UIColor colorWithWhite:0.750 alpha:1.000]; view6.clearsContextBeforeDrawing = NO; // ... UIButton *button9 = [UIButton buttonWithType:UIButtonTypeRoundedRect]; button9.frame = CGRectMake(167.0, 65.0, 72.0, 37.0); button9.adjustsImageWhenDisabled = YES; button9.adjustsImageWhenHighlighted = YES; button9.alpha = 1.000; button9.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleBottomMargin; button9.clearsContextBeforeDrawing = NO; button9.clipsToBounds = NO; button9.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter; // ... [button9 setTitleShadowColor:[UIColor colorWithWhite:0.000 alpha:1.000] forState:UIControlStateSelected]; // ... [view6 addSubview:button9]; // ... Bonus #1 As an added bonus, nib2objc includes a GUI to browse NIB files and even peer into their generated Objective-C code, complete with Fragaria-based syntax highlighting. Check the project home page for more details, not to mention the most minimalistic Redmine theme we’ve seen. Bonus #2 But wait, there’s more. We also stumbled across Adrian’s other project Bluwoki, a Bluetooth peer-to-peer walkie-talkie for iPhone and iPod Touch. Since my daughters get their Dad’s old hand-me-down iPhones, I may have to install this for them to have some fun around the house. Bluwoki is also open source, grab the code on GitHub. [Source on GitHub] [Home page]

read more...

iOS changelog.com

applitude: Elegant DSL to create iPhone apps in Eclipse

While language purists might balk at the growing popularity of projects that compile to Objective-C, the verbosity of the Cocoa framework has many developers looking for a faster way to create iPhone apps. Let’s face it, the vast majority of apps in the App Store follow a familiar pattern of making a network request, showing an activity indicator, parsing a JSON response, handling errors, loading a UITableView, and handling navigation to the next bit of data. Applitude is based on Applause, a nifty Domain Specific Language from Heiko Behrens and Peter Friese based on Xtext for creating iOS apps. Ralf Ebert has pared down Applause to have an iPhone focus to create Applitude. Here’s a sample: application Demo { view:Tabs() } tabview Tabs { tab { title: "Inventors" view: Inventors() } } type String mapsTo "NSString" entity Inventor { String name String imageUrl Invention[] inventions } entity Invention { String name } contentprovider AllInventors returns Inventor[] fetches JSON from "http://applitude.org/demo/inventors.json" selects "" tableview Inventors { Inventor[] inventors = AllInventors() title: "Inventors" section { cell Default for inventor in inventors { text: inventor.name image: inventor.imageUrl action: InventorDetail(inventor) } } } tableview InventorDetail(Inventor inventor) { title: inventor.name style: Grouped section { cell Value2 { text: "Name" details: inventor.name } } section { title: "Inventions" cell Default for invention in inventor.inventions { text: invention.name } } } This example creates a simple demo app based on some JSON: [ { "name" : "Thomas Edison", "imageUrl" : "http://applitude.org/demo/edison.jpg", "inventions" : [ { "name" : "Light bulb" }, { "name" : "Motion picture" }, { "name" : "Phonograph" } ] }, { "name" : "Alexander Graham Bell", "imageUrl" : "http://applitude.org/demo/bell.jpg", "inventions" : [ { "name" : "Telephone" } ] }, { "name" : "Nikola Tesla", "imageUrl" : "http://applitude.org/demo/tesla.jpg", "inventions" : [ { "name" : "Tesla coil" }, { "name" : "Alternating current" } ] } ] Applitude bundles popular open source iOS frameworks including TouchJSON, TouchXML, and ASIHTTPRequest. Visit the project home page for advanced usage, requirements, and installation instructions [Comment on Hacker News] [Source on GitHub] [Web site]

read more...

iOS changelog.com

betabuilder: Ruby gem makes iOS ad-hoc builds suck less

Behind most every App Store download, there is a painful trail of ad hoc beta builds as developers send beta bits to users to gather feedback and fix bugs. Luke Redpath, UK Rubyist and iOS developer, aims to ease that pain for iOS developers with BetaBuilder, a Ruby gem that bundles up a collection of rake tasks to make it easier to deploy your iOS apps. BetaBuilder supports distributing your apps own your own server or using TestFlightApp.com. To get started, first install the gem: gem install betabuilder Next, require BetaBuilder in your Rakefile: require 'rubygems' require 'betabuilder' … and configure your app: BetaBuilder::Tasks.new do |config| # your Xcode target name config.target = "MyGreatApp" # the Xcode configuration profile config.configuration = "Adhoc" config.deploy_using(:web) do |web| web.deploy_to = "http://beta.myserver.co.uk/myapp" web.remote_host = "myserver.com" web.remote_directory = "/remote/path/to/deployment/directory" end end Now we can see all of our tasks with rake -T: rake beta:archive # Build and archive the app rake beta:build # Build the beta release of the app rake beta:deploy # Deploy the beta using your chosen deployment strategy rake beta:package # Package the beta release as an IPA file rake beta:prepare # Prepare your app for deployment rake beta:redeploy # Deploy the last build If you want to use TestFlight instead of hosting your builds yourself, simply swap out the deploy config with: config.deploy_using(:testflight) do |tf| tf.api_token = "YOUR_API_TOKEN" tf.team_token = "YOUR_TEAM_TOKEN" end Nifty. Need additional deploy strategies? Go ahead and fork the project and share it with the community. [Update]: Thanks, Luke, for pointing out some prior art from Hunter who lent the name to the project. [Source on GitHub]

read more...

iOS changelog.com

tweetanium: JavaScript-powered native Twitter client for iPad, iPhone, Android, Windows, Mac, and Linux

The folks over at Appcelerator have been busy, recently releasing version 1.5 of their Titanium Mobile platform that enables developers to create native iOS and Android applications using JavaScript. In the spirit of showing versus telling, they’ve released Tweetanium, a Twitter client and cross-platform showcase of the Titanium platform. Tweetanium is an excellent example of how to build real-world applications with Titanium and demonstrates JavaScript best practices, including the module pattern, API integration with Twitter, as well as advanced CSS3 techniques. If you missed it, be sure and catch Episode 0.0.8 in which Marshall Culpepper gives us the scoop on the Titanium architecture. Tweetanium Desktop from Appcelerator Video Channel on Vimeo. [Source on GitHub]

read more...

iOS changelog.com

Canabalt: Engine behind popular iOS game now open source

In a blog post announcing their part in raising over $25,000 for charity, Semi Secret Software has released the source to Flixel iOS, the game engine behind their popular iOS title Canabalt. A port of Flixel, the Action Script Flash game framework, Flixel iOS handles texture atlas generation, particle rendering, collisions, and animated sprites. ... #import "Smoke.h" #import <SemiSecret/SemiSecretTexture.h> static NSString * ImgSmoke = @"smoke.png"; @interface Smoke () - (id) initWithGLData:(SmokeGLData *)glData texture:(SemiSecretTexture *)texture; - (void) setupVertices; - (void) setupTexCoords; @end ... If your app does Twitter, check out their previously released Twitter xAuth project. Need more? Go ahead and fork the project and improve upon it. [Source on GitHub] [Blog post]

read more...

iOS changelog.com

WatchWednesday for 20101103

Our weekly list of projects you might have missed on GitHub: RestKit RestKit is a nice high-level library for consuming REST resources in Objective C. It runs on OS X and iOS and provides three major features: Network transport including GET, POST, PUT, and DELETE Object mapping between JSON responses and local domain types, in a nice declarative way Core Data for persisting data in offline scenarios. LoadTest.io LoadTest.io is a Java-based multi-threaded load tester that includes auto discovery of web pages. AppceleratorRecord AppceleratorRecord provides ActiveRecord-inspired models for your Appcelerator Titanium Mobile applications. Be sure and catch Episode 0.0.8 on Titanium Mobile if you missed it. carmen As in where in the world…, Carmen is a simple collection of geographic names and abbreviations for Ruby including support for Australia, Brazil, Canada, Cuba, Denmark, Germany, Italy, Mexico, Spain, Ukraine, and United States. jQuery Idle Timer Plugin From Paul Irish, the this plugin provides an easy way to raise an event when a user has been idle on a web page: // idleTimer() takes an optional argument that defines the idle timeout // timeout is in milliseconds; defaults to 30000 $.idleTimer(10000); $(document).bind("idle.idleTimer", function(){ // function you want to fire when the user goes idle }); Meslo Meslo is a customized version of Apple’s Menlo font, mentioned in Episode 0.3.9.

read more...

iOS changelog.com

Deutsche Telekom releases Unify, metaframework for mobile built on HTML5, JavaScript, and Sass

At JSConf.eu 2010, Deutsche Telekom took the wraps off of their Unify Project which aims to provide a unified API for building cross-platform mobile and desktop applications. Unify looks to be a metaframework of sorts, wrapping other popular frameworks: qooxdoo is a comprehensive and innovative framework for creating rich internet applications (RIAs) using object-oriented JavaScript PhoneGap provides a native wrapper for web apps, providing interfaces for device features not supported with browser-based apps alone. Sass is a superset of CSS3 syntax and provides programmatic features for CSS such as variables, mixins, and selector nesting, covered way back in episode #1 Adobe AIR provides a cross-platform runtime for desktop applications. Unify currently supports iOS, Android, and WebOS devices and plans to support BlackBerry OS 6.0 soon. API The Unify API provides a single progamming model to features such as IO, storage, cache, geolocation, and even UI. Here’s the ScrollView class as an example: unify.ui.mobile.ScrollView Scrolling could be enabled/disabled separately for each axis. Indicator style is changable through an API call (per instance) Flips back when scrolling out of allowed ranges. Smooth animations for deleleration and flip back Page based scrolling where the content is auto-splitted into pages which are used for snapping into Keep an eye on the Unify Roadmap for updates and real-world implementations. [Source on GitHub] [Homepage]

read more...

iOS changelog.com

jsconsole: JavaScript console now on the iPhone, iPad

JSConsole from Remy Sharp is a great way to play with JavaScript in the browser, especially during live coding sessions. Just like Firebug or the WebKit JavaScript consoles, simply type an expression and JSConsole will evaluate it: Math.floor(-3.15) > -4 JSConsole also serves up permalinks for each command: http://jsconsole.com/?Math.floor(-3.15). You can even load external JavaScript libraries with a single command: :load jquery Remy has now ported the console to mobile devices using PhoneGap, complete with Websockets support. [JSConsole on GitHub][JSConsole for iOS on GitHub]

read more...

iOS changelog.com

zepto.js: Minimalist JavaScript framework for mobile WebKit with jQuery-like chaining

It may seem strange that the author of Prototype-based script.aculo.us would embark on creating a new jQuery-esque JavaScript library for mobile devices, but that’s exactly what Thomas Fuchs has done with zepto.js. One reason JavaScript frameworks have become popular is because they abstract browser differences and let the developer focus on the work at hand, not on how it’s done. Since zepto.js targets only Webkit browsers, a lot of the cruft found in other frameworks can be eliminated. Modern JavaScript features such as forEach can be assumed so the framework is leaner, critical for building mobile apps. zepto.js is under heavy development (growing by 2x since we first spotted it yesterday), but looks to deliver on its goal of being a “~2k library that handles most basic dredge work for you in a nice API so you can concentrate on getting stuff done.” Features zepto.js uses the familiar $ function and includes the usual suspects: get(): return array of all elements found get(0): return first element found html('new html'): set the contents of the element(s) css('css properties'): set styles of the element(s) append, prepend: like html, but append or prepend to element contents Ajax support Methods you’d expect for Ajax-fied GETs and POSTs are there as well: $.get(url, callback) $.post(url, callback) $.getJSON(url, callback) Installing and using Thomas recommends not linking to zepto.js directly in your document <head>, rather copy and paste the contents of zepto.min.js directly into a <script> tag. Thomas knows a thing or two about mobile optimization. Be sure and catch his thoughts in how he optimized Every Time Zone for mobile devices. [Source on GitHub]

read more...
0:00 / 0:00