When developing something in a language that you're not so experienced with, looking for the examples and digging them deeply is a good way of learning.
Same with the iPhone application development and considering it is something new for many developers, viewing the codes of real-world applications and re-using them when needed is very valuable.
Here are 20+ open source iPhone apps to learn and get inspired from:
-
WordPress for iOS

The official WordPress application for iOS.Besides strong content or comment editing features, it can share your location while publishing a post as well (download exists under the "development menu").
-
MiniBooks

The open source iPhone application of the FreshBooks invoicing service.It connects to the FreshBooks account and enables you to use most of the features (source is offered here).
-
reMail

An e-mail search application (acquired by Google) that downloads all your e-mail and makes full-text searches. -
TubeStatus

It displays the London Underground tube lines by parsing the HTML from the official TFL website.And, once a line is clicked, TubeStatus shows detailed information about it.
-
SpaceBubble
SpaceBubble is a fast-paced arcade game which is also optimized for the iPhone 4 retina display. -
wikiHow

It enables you to read wikiHow's featured article feed, search and browse them.And, you can bookmark articles to store them for later reading, and watch YouTube videos embedded into articles.
-
NatsuLiphone

A Twitter client which can display the friend timeline and post a status message.It can show a specific user's timeline and has an autopagerize method that can display older tweets while scrolling.
-
Molecules

An application that allows you to view three-dimensional renderings of molecules and manipulate them using your fingers.Molecules can be rotated by moving your finger and zoom in or out by using two-finger pinch gesture.
-
HP Calculator Emulator

The application emulates various versions of the popular HP scientific calculators. -
Books

A simple eBook reader for the iPhone which reads HTML and text files stored in your ~/Media/EBooks folder.And, it is smart enough to enter subdirectories, if for instance, you've broken a book down by chapters.
-
Yfrog For iPhone

A Twitter application where you can view friends timeline, following/follower lists, post status updates or send direct messages.Also, you can add geo information into tweets.
-
MobileSynth

A classic monophonic (playing one note at a time) synthesizer, designed for live performance. -
PocketFlicks

The application helps finding movies and managing your Netflix information.Using PocketFlicks, add movies to your queue, add/update ratings and more.
-
Official Last.fm Application

The iPhone application of Last.fm for listening to free streaming radio anywhere.It also helps to share music via your phone contacts, purchase tracks and albums from the iTunes Music Store.
-
Colloquy

The iPhone version of the well-known Mac OS X IRC client.It is a complete chat application with support for all IRC functions, push notifications, highlighting messages, etc.
-
Now Playing

Browse theaters, the movies they are playing, show times, ratings, play trailers and their distances.The application is currently down due to an issue with the data provider but the source is still available.
-
Diceshaker

A dice-rolling application for iPhone, Android and JavaScript-based environments for your roleplaying sessions and board games. -
Gorillas

The iPhone version of the cult QBasic game. Its source can be found here. -
Ecological Footprint

An application for quickly calculating a person's ecological impact with inputs like eating or traveling habits and its source can be found here. -
ZBar Barcode Reader

A simple demonstration for the usage of ZBar library on iPhone.It can scan barcodes and samples for making product searches on Google or Amazon are also included.
-
PackLog

An application for updating your Backpack status and journal entries easily.The developer mentions that he is not proud of the code however it is not always the good ones that we can learn from.
摘自: http://www.webresourcesdepot.com/20-open-source-iphone-applications-to-learn-from/
扫描wifi信息:
http://code.google.com/p/uwecaugmentedrealityproject/
http://code.google.com/p/iphone-wireless/
条形码扫描:
http://zbar.sourceforge.net/iphone/sdkdoc/install.html
tcp/ip的通讯协议:
http://code.google.com/p/cocoaasyncsocket/
voip/sip:
http://code.google.com/p/siphon/
http://code.google.com/p/asterisk-voicemail-for-iphone/
http://code.google.com/p/voiphone/
three20 http://three20.info/
google gdata
http://code.google.com/p/gdata-objectivec-client/
720全景显示panoramagl
http://code.google.com/p/panoramagl/
jabber client
http://code.google.com/p/ichabber/
PLBlocks
http://code.google.com/p/plblocks/
image processing
http://code.google.com/p/simple-iphone-image-processing/
json编码解码:http://code.google.com/p/json-framework
base64编码解码:http://code.google.com/p/google-toolbox-for-mac/source/browse/trunk/Foundation/?r=87
xml解析:
安全保存用户密码到keychain中:
加载等待特效框架(private api):
http等相关协议封装:http://allseeing-i.com/ASIHTTPRequest
下拉刷新代码:
异步加载图片并缓存代码:http://www.markj.net/iphone-asynchronous-table-image/
iphone TTS:
iphone cook book 源码:
iphone正则表达式:http://regexkit.sourceforge.net/RegexKitLite/
OAuth认证: http://code.google.com/p/oauth/
http://code.google.com/p/oauthconsumer/
蓝牙协议栈:http://code.google.com/p/btstack/
语音识别:http://www.politepix.com/openears/
ShareKit:http://www.getsharekit.com/install/
日历控件:http://code.google.com/p/iphonecal/
zlib, openssl:http://code.google.com/p/ios-static-libraries/
Android APK反编译详解(附图)
http://blog.csdn.net/sunboy_2050/article/details/6727581
Android如何防止apk程序被反编译
http://blog.csdn.net/sunboy_2050/article/details/6727640
2 Tutorial: JSON Over HTTP On The iPhone
http://mobileorchard.com/tutorial-json-over-http-on-the-iphone/
3 code: https://github.com/dcgrigsby/luckynumbers
4 iPhone上的JSON(三)JSON+UITableView
http://c.gzl.name/archives/tag/uitableview
1 包含官方提供的m/h文件
2 包含SystemConfiguration.framework
Reachability *r = [Reachability reachabilityWithHostName:@"www.aslibra.com"];
switch ([r currentReachabilityStatus]) {
case NotReachable:
// 没有网络连接
NSLog(@"NotReachable");
UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"Network Failed" message:@"Please check your connection and try again." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil ];
[alert show];
return;
break;
case ReachableViaWWAN:
// 使用3G网络
NSLog(@"ReachableViaWWAN");
break;
case ReachableViaWiFi:
// 使用WiFi网络
NSLog(@"ReachableViaWiFi");
break;
}
//后续代码
可以参考阅读更多资料:
1 iPhone SDK: Testing Network Reachability
2 iPhone开发技巧之网络篇(4)— 确认网络环境 3G/WIFI
3 How to check for an active Internet Connection on iPhone SDK?
4 iPhone 网络连接检测(Wifi,3G,Edge),功能有点像Reachability
5 iOS/iPhone Reachability - How to only check when internet is lost/not reachable using Reachability.m/.h
6 How to check network status in iphone app?
7 如何在ios中检测网络连接
HJCache is an iOS library that makes it very easy to asynchronously load images from URLs, display them in smooth scrolling tables, and cache the images in file storage. Think about any app that loads lots of images over the net and displays them as you use the app: eg scrolling through a list of tweets or facebook posts; swiping through a photo album from a remote server. For apps like that you want the images to load asynchronously in the background so that a slow network connection doesn’t make the UI freeze. You also maybe want :
- To cache them locally so they appear faster the next time the app is used;
- The cache can trim its size;
- The images to be shared within the app, eg so that if you are looking at a list of posts by the same person, their profile pic is loaded and just once and the UIImage object is shared;
- That interrupted downloads don’t mess up the cache with incomplete images;
- That normal memory management just works, even though an object in one place may also be shared in other places, and in different parts of the cache.
- Restrict use of the network to images that are on the screen now, if for example you scroll though a long table of images, the one’s that the user scrolled past and are not off the top of the screen don’t need to be loaded.
- Allow images to finish loading to the cache in some cases, even if the views they will be used in are removed because the user went back to a previous screen right away.
- Sometimes load a few image ahead of when they are needed, eg for a swipe through photo album.
HJCache implements all this and more. (BTW, HJCache was first called HJ Object Manager, it’s the same things and the class names didn’t change.)
HJCache is free to use in free or paid iOS and Mac apps, and its been in use in one form or another since 2009 in several commercial iPhone apps made by us. For example we use it in our own app Focus for Facebook. The basis of HJCache is explained in this blog post ‘Asynchronous Image Loading in UITableView‘, but its come a long way since then.
Enumerating all the Keys and Values
Sometime, you need to iterate over all the key/value pairs in a dictionary. To do this, you use the method -allKeys to retrieve an array of all the keys in the dictionary; this array contains all the keys, in no particular (ie random) order. You can then cycle over this array, and for each key retrieve its value. The following example prints out all the key-values in a dictionary:
{
NSArray *keys;
int i, count;
id key, value;
keys = [dict allKeys];
count = [keys count];
for (i = 0; i < count; i++)
{
key = [keys objectAtIndex: i];
value = [dict objectForKey: key];
NSLog (@"Key: %@ for value: %@", key, value);
}
}
As usual, this code is just an example of how to enumerate all the entries in a dictionary; in real life, to get a description of a NSDictionary, you just do NSLog (@"%@", myDictionary);.
原文:http://www.gnustep.it/nicola/Tutorials/BasicClasses/node27.html





