When You Learn,Teach;When You Get,Give!
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
会立刻卸载了,但是只是df上看不到,设备还是在占用,但此时你可以挂载新设备上来了
新文件读写应该都可以在新设备,要使用旧设备,可以用fuser找到占用的进程,kill掉就可以了
原理上要想umount,首先要kill正在使用这个目录的进程。*假设无法卸载的设备为/dev/sdb1
1)运行下面命令看一下哪个用户哪个进程占用着此设备
fuser -m -v /dev/sdb1
2)运行下面命令杀掉占用此设备的进程
fuser -m -v -k /dev/sdb1
或者fuser -m -v -k -i /dev/sdb1(每杀掉一下进程会让你确认)
3)再umount
*杀掉所有以任何形式访问文件系统 /dev/sdb1的进程:
$fuser -km /dev/sdb1
这个办法是一个比较粗鲁的办法,通常适用于在测试等非正式环境。比较正规的要配合ps等命令,查出使用的用户、进程、命令等,然后做出综合判断,必要时先通知(signal或口头等)用户,确认安全时才可以强制kill此进程。
但有时fuser执行时,仍然会有报错,其实umount强制退出,可以考虑用参数l(Lazy),这个参数是比f(Force)更强大的终极命令。
Man Umount 查看f和l的参数说明如下:
-f Force unmount. This allows an NFS-mounted filesystem to be unmounted if the NFS server is unreachable. Note: when using umount -f on an NFS filesystem, the
filesystem must be mounted using either the soft, or intr options (see nfs(5). This option will not force unmount a
instead).
(Requires kernel 2.1.116 or later.)
-l Lazy unmount. Detach the filesystem from the filesystem hierarchy now, and cleanup all references to the filesystem as soon as it is not busy anymore. This option
allows a
本次操作过程如下:
[root@FUHOST /]# umount /home/swebapp/apache-tomcat-5.5.17/webapps/upload/
umount: /home/swebapp/apache-tomcat-5.5.17/webapps/upload: device is busy
umount: /home/swebapp/apache-tomcat-5.5.17/webapps/upload: device is busy
[root@FJ-WEB-02 sbin]# umount -f /home/swebapp/apache-tomcat-5.5.17/webapps/upload/
umount2: 设备或资源忙
umount: /home/swebapp/apache-tomcat-5.5.17/webapps/upload: device is busy
umount2: 设备或资源忙
umount: /home/swebapp/apache-tomcat-5.5.17/webapps/upload: device is busy
[root@FJ-WEB-02 sbin]# fuser -km /home/swebapp/apache-tomcat-5.5.17/webapps/upload/
/home/swebapp/apache-tomcat-5.5.17/webapps/upload/: 输入/输出错误
[root@FJ-WEB-02 sbin]# fuser -um /home/swebapp/apache-tomcat-5.5.17/webapps/upload/
/home/swebapp/apache-tomcat-5.5.17/webapps/upload/: 输入/输出错误
[root@FJ-WEB-02 upload]# umount -l /home/swebapp/apache-tomcat-5.5.17/webapps/upload/
参考阅读
1 强制Umount NFS终极手法 http://tonnyxs.blog.163.com/blog/static/27937985201102202028695/
2 linux 下强制umount+Fuser命令详解 http://yangzhongfei.blog.163.com/blog/static/4610987520102311081367/
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.





