Create an iPhone app with no programming experience

What happens if you have a great idea for an iPhone app, but don’t have the required technical skills? You could invest the time and effort to learn those skills, but that could take a long time. You can pay someone to create the app for you, but that can be expensive, and it can also be difficult to clearly communicate exactly what you want. Now there’s a real alternative: App Press. A web-based tool that allows you to easily build iPad and iPhone apps visually, without any development experience.

The idea of App Press was conceived in 2010 after Kevin Smith and Grant Glas discussed a way graphic designers could build an iOS app without writing a single line of code. After many beta phases and a three-month-long approval process with Apple (which the app was rejected twice) they final launched App Press to the public on May 28, 2011. Since then App Press has grown to over 1,000 users in 23 different countries and there are now 12 App Press powered apps on the AppStore, with over 100,000 downloads between them. Two of the most successful App Press build apps were ”The Chili Chef“, which was selected by Apple to be featured in the AppStore, and “500 History” which was featured on the iTunes homepage. Watch the video below to see how easy it was to create these applications.

The goal of App Press is to empower people with no development experience by allowing them to leverage their existing content and ideas to build something amazing for the iPad and iPhone. The pricing beats all comparable options for building a top quality iOS apps. App Press’ incredible features will take your app to highest level of quality for a fraction of the cost it would take you to develop it elsewhere, and allows you to manage everything yourself. App Press creates a digital hub that allows you to easily update your content daily, tie in your social media network, display your Twitter feed and insert existing web content like your blog and storefront. All of this you can build 100% code-free.

AppDevMag Reader Offer

Like the sound of App Press and want to give it a try? The first three AppDevMag readers to register for a 30-day trial of App Press will receive the App Press Preview app for free (a $39.99 value). Simply enter ‘DevMag’ in the company field and the App Press team will email you a promo code.


10 iOS Libraries to Make Your Life Easier

The operating system that powers Apple’s iPhone and iPad devices, iOS, has proved incredibly popular with developers. A large part of this is almost certainly due to the opportunity that the App Store gives developers to make money, but the great development tools that Apple provide, in the form of XCode and Interface Builder, and also the Objective-C programming language, which iOS developers are required to use, certainly play their part.

The iOS SDK that developers use to build iPhone and iPad apps is relatively low level, requiring the developer to do a lot of work to get their app up and running. Fortunately there are lots of third party libraries available that provide useful functionality that can make your life as an iOS developer much easier. Here we discuss 10 of the best:

MBProgressHUD – Progress Indicator Library

Many official Apple apps have a nice translucent progress display. Unfortunately it’s an undocumented API, and therefore using it is likely to get your app rejected from the app store. This library provides a drop in replacement that looks almost identical. It also provides some additional options, such as a visual progress indicator, and a progress completion message. Integrating it into your project is as simple as adding a couple of files, so you’ve got no excuse not to!

ASIHttpRequest – HTTP Network Library

The iPhone’s network API can be a little verbose. the ASI library simplifies network communication greatly, and offers advanced tools such as file uploads, redirect handling, authentication, form submission, and caching. If you’re doing anything HTTP related in your iPhone app then this library will make your life so much easier! Here’s how simple it makes fetching a website asynchronously:

- (void) loadAppDevMag
   NSURL *url = [NSURL URLWithString:@""];
   ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
   [request setDelegate:self];
   [request startAsynchronous];

- (void)requestFinished:(ASIHTTPRequest *)request
   // Use when fetching text data
   NSString *responseString = [request responseString];

JSON Framework – JSON Support

If your app interacts with any web services you’ll more than likely come across JSON encoded data. Surprisingly there’s no support for JSON in the native iOS libraries, but the JSON framework provides everything you need, including a parser to turn JSON strings into objects, and a generator to create JSON strings from objects. This library is so popular, and JSON so common, that it’s actually included in many of the other libraries features in this post already. Here’s a quick example:

// JSON string -> NSDictionary
NSString *jsonString = @"{\"foo\": \"bar\"}";
NSDictionary *dictionary = [jsonString JSONValue];
NSLog(@"Dictionary value for \"foo\" is \"%@\"", [dictionary objectForKey:@"foo"]);

// NSDictionary -> JSON string
NSString *newJsonString = [dictionary JSONRepresentation];

Flurry – Detailed Usage Statistics

By adding the flurry SDK to your project you’ll automatically get a load of usage statistics about your application, such as how many users you have, how active they are, and where they are in the world. The real power of flurry though is that it allows you to specify your own events to track, and log errors. All of this information is then available in a Google Analytics style dashboard, so you can see what your users are doing with your app, and what problems they’re running into. You really should be using some kind of usage tracking library, and although alternatives do exist, such as Google Analytics for Mobile and Localytics, Flurry has worked really well for me.

RegexKitLite – Regular Expression Support

Regular Expressions are a really powerful tool, and the absence of support for regular expressions in the iPhone SDK seems to be a glaring omission. Fortunately the RexexKitLite library is here to help. It’s a powerful fully featured regex library that’s simple to use. Here’s the sample code to match a phone number:

// finds phone number in format nnn-nnn-nnnn
NSString *regEx = @"[0-9]{3}-[0-9]{3}-[0-9]{4}";
for(NSString *match in [textView.text componentsMatchedByRegex:regEx]) {
    NSLog(@"Phone number is %@", match);

Facebook iOS SDK – Facebook API Library

Facebook login (previously called Facebook Connect) is used all over the web as a way for users to login to services by using their existing Facebook account, saving them from having to create lots of separate accounts. This library allows you to do the same with your iPhone apps. It also has full support for both the Facebook Graph API and the older REST api, which give you access to the social graph and related Facebook information of your users, and make it easy to implement features such as friend finders and inviters. This library is used by a lot of big name apps for their Facebook integration, so if you want to use Facebook as your primary authentication method or you’d just like to add a friend invite feature this library is well worth checking out.

SDWebImage – Simple Web Image Support

SDWebImage is a library for dealing with images on the web. It allows you to use images on the web as easily as local files already packaged with your application. It automatically handles caching, and also supports advanced features such as placeholder images and a download queue. Once you’ve added it to your project you can set the image for a UIWebView as simply as:

[imageView setImageWithURL:[NSURL URLWithString:@""]];

Similar functionality is provided by the Three20 library, mentioned later, but if you’re after a simple library that focuses on doing one thing well, and you’re using web based images in your project, then SDBWebImage is what you need.

GData client – iPhone library for all of Google’s services

Google’s official GData library allows you to access many of Google’s services, including contacts, calendar, analytics, picasa, translate and YouTube. The project is well documented, and contains lots of example applications. With all of the great services Google offer there are so many different ways that this library could be used to enhance an existing application, and there are probably lots of interesting apps that could be built off the back of the example apps included in this library. If you’re an iOS developer stuck for ideas then this is where I’d suggest you look!

CorePlot – 2D Graph Plotter

CorePlot makes makes it extremely easy to visualize your data in a variety of ways, and produces very attractive graphs. It supports bar graphs, pie charts, line graphs, and complex mathematical function plotting among others. The library is well documented, and the website contains lots of examples of where it’s already being used, including stock price applications, game scores, personal finance apps, and for web analytics visualization.

Three20 – General iOS Library

The Three20 library came out of the official Facebook iPhone app. It’s a fairly big and full featured library, including low level components such as a HTTP cache, and many higher level UI components such as a photo viewer and web based table view. It can be a little tricky to integrate Three20 into existing projects, but if you’re starting a project from scratch Three20 can really give you a big head start, especially for projects that make heavy use of the web.

There’s a library for that…

Whether it’s interacting with a web API, visualizing data, loading images from the web, or creating social features in your app, the libraries listed here make developing such features easier and less time consuming. If you’re an iOS developer and you haven’t made use of any of these libraries then you should definitely check them out before starting your next project. If you have used any of them, or one that we haven’t mentioned, then please let us know your experiences in the comments.