Writing iOS programs often requires support from a number of third-party frameworks, which can significantly reduce workload and focus on the logic of the software itself.
GitHub has a lot of good third-party frameworks, and License is friendly to business. Take a look at some of the frameworks that almost every project wants to integrate.
Sdwebimageview
1. Mantle
Mantle allows us to simplify the model layer of COCOA and Cocoa Touch applications. To put it simply, a network request is often made in the program, and the request is generally a JSON string, and we typically build a model class to hold the data. This requires that we write a series of serialization code to convert the JSON to Model. This is time-consuming, error-prone, and not easy to modify. Mantle is a good solution to this problem and is easier to use.
Github:https://github.com/mantle/mantle
Reference:
Tool article: Mantle
SOURCE article: Mantle
Cocoapod integration: Pod ' mantle ', ' ~> 1.5.4 '
2. Masonry
In the IB era, if you're still using the code, the absolute layout is too low. With Apple released IPhone6, IPhone 6 Plus. IOS devices will have an increasingly rich screen size, and it's not possible to make a layout based on each size. Therefore, it is necessary to use AutoLayout. In storyboard, it can be very convenient to use AutoLayout, but in order to better co-development, some companies are still in the handwriting layout, frustrating is Apple provides the AutoLayout syntax is obscure, very impact on efficiency (you can dynamically see here AutoLayout's syntax). Masonry is designed to solve complex handwritten autolayout. How to use AutoLayout gracefully, and look at masonry.
Github:https://github.com/masonry/masonry
Reference: How to use, please see the README
Cocoapod integration: Pod ' masonry ', ' ~> 0.6.1 '
3. reachability
In the era of mobile internet, there should be few applications that do not require a network connection. Monitoring network connection status is almost an essential part. Reachability can do the job perfectly.
Github:https://github.com/tonymillion/reachability
Reference: The use of the method is very simple, see the README
Cocoapod integration: Pod ' reachability ', ' ~> 3.2 '
4. Blockskit
Blockskit is definitely the intimate companion of Objective-c, which provides a powerful Block syntax support for OC classes, making it comfortable, fast, and elegant to write OC code. Anyway I was absolutely inseparable from it.
Github:https://github.com/zwaldowski/blockskit
Reference: Block usage summary, using block in arc, how to prevent circular referencing (ZZ)
Cocoapod integration: Pod ' blockskit ', ' ~> 2.2.5 '
5. Kvocontroller
If you use KVO in your project, then Kvocontroller is definitely a good choice. It is a KVO enhanced framework for Facebook open source. There are several features:
Use Blocks, custom Actions, or nskeyvalueobserving callbacks for notifications.
No exception when Observer is removed
Implicit observer removal from controller Dealloc
Improve performance with nskeyvalueobservinginitial
Thread-safe and provides additional protection when the observer recovers
Is there any reason not to use Kvocontroller?
Github:https://github.com/facebook/kvocontroller
Reference: Kvocontroller:facebook Open source KVO (key-value observing) tool
Cocoapod:pod ' Kvocontroller ', ' ~> 1.0.3 '
6. Mbprogresshud
A veteran, classic notification component, if you do not specifically design the art of waiting and notification view, then use it!
7. Odrefreshcontrol
Many companies design their own pull-up refresh view, such as the NetEase news IOS client, drop down when there will be ads. If you just need a drop-down refresh, then consider the Odrefreshcontrol, which is the original iOS6 on the rubber candy refresh style, very interesting. Now there are a lot of big apps in use, such as shrimp music and QQ client.
Github:https://github.com/sephiroth87/odrefreshcontrol
Reference
Cocoapod:pod ' Odrefreshcontrol ', ' ~> 1.1.0 '
8. Pop
Facebook is also open source. The famous pop, do animation is the perfect choice. Accept it.
Github:https://github.com/facebook/pop
Reference: Facebook Pop usage Guide popping (use instance of Pop)
Cocoapod:pod ' Pop ', ' ~> 1.0.7 '
9. afnetworking
OBJECTIVE-C the network Request library.
Svprogresshud Hint effect
Github:https://github.com/samvermette/svprogresshud
Svprogresshud and Mbprogresshud have the same effect, but don't need to use protocols, and you don't need to declare instances.
The call can be made directly from the class method:
[Svprogresshud Method]
You can use the following methods to display the status:
+ (void) show;+ (void) Showwithmasktype: (svprogresshudmasktype) masktype;+ (void) Showwithstatus: (nsstring*) string;+ ( void) Showwithstatus: (nsstring*) string Masktype: (Svprogresshudmasktype) Masktype;
If you need clear progress, use the following methods:
+ (void) ShowProgress: (cgfloat) progress;+ (void) ShowProgress: (cgfloat) Progress Status: (nsstring*) status;+ (void) ShowProgress: (cgfloat) Progress Status: (nsstring*) status Masktype: (Svprogresshudmasktype) Masktype;
To hide a hint by using the dismiss method:
+ (void) dismiss;
In addition, the following methods are available for displaying the status and automatically hiding the hint after 1 seconds (the icon used from glyphish:http://www.glyphish.com/):
+ (void) Showsuccesswithstatus: (nsstring*) string;+ (void) Showerrorwithstatus: (NSString *) string;+ (void) ShowImage: ( uiimage*) Image status: (nsstring*) string; Use 28x28 white PNGs
Zaactivitybar Hint effect
Github:https://github.com/zacaltman/zaactivitybar
Zaactivitybar and Svprogresshud are very similar, providing a more concise API to show the effects of hints.
The animation effect used by Zaactivitybar is derived from zkbounceanimation (https://github.com/khanlou/SKBounceAnimation), and the success and failure status icons are derived from Pictos ( http://pictos.cc/).
Show Load Status:
[Zaactivitybar showwithstatus:@ "Loading ..."];
Show success and failure status:
[Zaactivitybar showsuccesswithstatus:@ "Success!"]; [Zaactivitybar showerrorwithstatus:@ "Failure!"];
Hidden hints:
[Zaactivitybar dismiss];
Official: http://sbjson.org/
Github:https://github.com/stig/json-framework
Uiactivityindicator-for-sdwebimage display loading effect for Sdwebimage
Github:https://github.com/jjsaccolo/uiactivityindicator-for-sdwebimage
To display the load effect (Uiactivityindicatorview implementation) when loading a picture for sdwebimage in Uiimageview, it provides the following methods:
-(void) Setimagewithurl: (nsurl *) URL Usingactivityindicatorstyle: (uiactivityindicatorviewstyle) activityStyle;-( void) Setimagewithurl: (nsurl *) URL placeholderimage: (UIImage *) placeholder Usingactivityindicatorstyle: ( Uiactivityindicatorviewstyle) activitystyle;-(void) Setimagewithurl: (nsurl *) URL placeholderimage: (UIImage *) Placeholder options: (sdwebimageoptions) options Usingactivityindicatorstyle: (Uiactivityindicatorviewstyle) activitystyle;-(void) Setimagewithurl: (nsurl *) URL completed: (sdwebimagecompletedblock) Completedblock Usingactivityindicatorstyle: (Uiactivityindicatorviewstyle) activitystyle;-(void) Setimagewithurl: (NSURL *) URL Placeholderimage: (UIImage *) placeholder completed: (sdwebimagecompletedblock) Completedblock Usingactivityindicatorstyle: (Uiactivityindicatorviewstyle) activitystyle;-(void) Setimagewithurl: (NSURL *) URL Placeholderimage: (UIImage *) placeholder options: (sdwebimageoptions) options completed: (Sdwebimagecompletedblock) Completedblock Usingactivityindicatorstyle: (uiactiVityindicatorviewstyle) activitystyle;-(void) Setimagewithurl: (nsurl *) URL placeholderimage: (UIImage *) placeholder Options: (Sdwebimageoptions) Options Progress: (Sdwebimagedownloaderprogressblock) Progressblock completed: ( Sdwebimagecompletedblock) Completedblock Usingactivityindicatorstyle: (uiactivityindicatorviewstyle) ActivityStyle ;
Uiimage+resize Resizing a picture
Github:https://github.com/coryalder/uiimage_resize
There are a number of ways to set transparency, fillet, crop, resize, and so on for a picture:
-(UIImage *) imagewithalpha;-(UIImage *) Transparentborderimage: (Nsuinteger) bordersize;-(UIImage *) Roundedcornerimage: (Nsinteger) cornersize bordersize: (Nsinteger) bordersize;-(UIImage *) Croppedimage: (CGRect) bounds;-(UIImage *) thumbnailimage: (nsinteger) thumbnailsize transparentborder: (nsuinteger) bordersize Cornerradius: (nsuinteger) Cornerradius interpolationquality: (cginterpolationquality) quality;-(UIImage *) Resizedimage: (cgsize) newSize interpolationquality: (cginterpolationquality) quality;-(UIImage *) Resizedimagewithcontentmode: (uiviewcontentmode) Contentmode bounds: (cgsize) bounds interpolationquality :(cginterpolationquality) quality;
For more detailed use see: http://vocaro.com/trevor/blog/2009/10/12/resize-a-uiimage-the-right-way/
Imagecacheresize loading pictures, caches, and resizing asynchronously
Github:https://github.com/toptierlabs/imagecacheresize
Integrates the functions of sdwebimage and uiimage+resize for asynchronous loading, caching, and resizing of images and displaying them on Uiimageview after the download is complete.
The following APIs are available for loading pictures and resizing pictures when loading is complete:
-(void) Setimagewithurl: (nsurl *) URL andcroptobounds: (cgrect) bounds;-(void) Setimagewithurl: (nsurl *) URL andresize: ( cgsize) Size Withcontentmode: (uiviewcontentmode) mode;-(void) Setimagewithurl: (nsurl *) URL placeholderimage: (UIImage *) Placeholder andcroptobounds: (cgrect) bounds;-(void) Setimagewithurl: (nsurl *) URL placeholderimage: (UIImage *) Placeholder options: (sdwebimageoptions) Options andresize: (cgsize) size;-(void) Setimagewithurl: (nsurl *) URL Placeholderimage: (UIImage *) placeholder options: (sdwebimageoptions) Options andresize: (cgsize) size Withcontentmode: (uiviewcontentmode) mode;-(void) Setimagewithurl: (nsurl *) URL placeholderimage: (UIImage *) Placeholder options: (sdwebimageoptions) Options andcroptobounds: (cgrect) bounds;
The method of use is as simple as sdwebimage, as in the following official example:
[ImageView setimagewithurl:[nsurl urlwithstring:@ "HTTP://T0.GSTATIC.COM/IMAGES?Q=TBN: And9gcqfrahpiabjey8iddbe9ouqyhmtwfuav9zrr0rykuovf_epe8fp5a "] Andresize:cgsizemake (WithContentMode): Uiviewcontentmodescaleaspectfit]; Proportionally scale [ImageView setimagewithurl:[nsurl urlwithstring:@ http://t0.gstatic.com/images?q=tbn: And9gcqfrahpiabjey8iddbe9ouqyhmtwfuav9zrr0rykuovf_epe8fp5a "] Andcroptobounds:cgrectmake (0, 0, 100, 100)]; Cut into 100x100 size
Stableviewcontroller drop-down refresh, pull-up load more
Github:https://github.com/shiki/stableviewcontroller
Stableviewcontroller is more than Pulltorefresh a pull-up load more features, use is almost simple, need to inherit from Stableviewcontroller, and then implement some methods:
-(void) viewdidload{[Super Viewdidload]; Self.title = @ "Stableviewcontroller Demo"; [Self.tableview Setbackgroundcolor:[uicolor Lightgraycolor]; You need to create two custom views to show "drop-down Refresh", "Pull up load more" Self.headerview = Headerview; Self.footerview = Footerview; } #pragma mark-pull to refresh-(void) pinheaderview{[Super Pinheaderview]; The drop-down refresh view shows some load animations}-(void) unpinheaderview{[Super Unpinheaderview]; Drop-down refresh view stop animation}-(void) Headerviewdidscroll: (BOOL) willrefreshonrelease ScrollView: (Uiscrollview *) scrollview{// The drop-down refresh view displays the status information if (willrefreshonrelease)//hv.title.text = @ "Refresh after release ..."; else//hv.title.text = @ "drop-down Refresh ...";} -(BOOL) refresh{if (![ Super Refresh]) return NO; Drop-down refresh load data [self performselector: @selector (additemsontop) Withobject:nil afterdelay:2.0]; return YES;} #pragma mark-load more-(void) willbeginloadingmore{//Pull up load more view load animation}-(void) loadmorecompleted{[Super Loadmorecomple Ted]; Pull up load more view stop animation if (!self.canloadmore) {////No more data when executing code ...}} - (BOOL) loadmore{if (![ Super Loadmore]) return NO; Pull-up loads more data [self performselector: @selector (additemsonbottom) Withobject:nil afterdelay:2.0]; return YES;} -(void) additemsontop{//Load data ... [Self.tableview Reloaddata]; Data load completion notification pull-up view [self refreshcompleted];} -(void) additemsonbottom{//load more data ... [Self.tableview Reloaddata]; By judging whether the setting can load more//self.canloadmore = NO; Data load completion notification drop-down view [self loadmorecompleted];}
Svpulltorefresh drop-down refresh, pull-up load more
Github:https://github.com/samvermette/svpulltorefresh
Contains Svpulltorefresh + svinfinitescrolling for UITableView to provide drop-down refresh, pull-up load more features.
It is also quite simple to use, as long as the following methods are implemented in Uitableviewcontroller:
-(void) viewdidload { [super viewdidload]; __weak Svviewcontroller *weakself = self; Set the drop-down refresh [Self.tableview addpulltorefreshwithactionhandler:^{ [weakself insertrowattop]; }]; Set pull-up to load more [Self.tableview addinfinitescrollingwithactionhandler:^{ [weakself insertrowatbottom]; }];} -(void) Viewdidappear: (BOOL) animated { [TableView Triggerpulltorefresh];} -(void) Insertrowattop { //Get data .... Stop animation [Self.tableView.pullToRefreshView stopanimating];} -(void) Insertrowatbottom { //Get data .... Stop animation [WeakSelf.tableView.infiniteScrollingView stopanimating];}
Cmpoptipview Tip Information
Github:https://github.com/chrismiles/cmpoptipview
Cmpoptipview is used to display prompt information on some views:
Self.tipview = [[Cmpoptipview alloc] initwithmessage:@ "prompt message"];self.tipview.delegate = self; [Self.tipview Presentpointingatview:anybutton InView:self.view Animated:yes]; Click the button to display [Self.tipview Presentpointingatbarbuttonitem:barbuttonitem animated:yes]; Click the Navigation bar button to display #pragma mark Cmpoptipviewdelegate methods-(void) Poptipviewwasdismissedbyuser: (Cmpoptipview *) Poptipview { //cleanup resource Self.tipview = nil;}
Github:https://github.com/vicpenap/prettykit
Custom UI components such as UITableViewCell, Uinavigationbar, Uitabbar, Uitoolbar, etc., are more aesthetically pleasing than the system itself.
Github:https://github.com/sobri909/mgbox2
Providing some custom UI components makes it easier and faster to create tables, grid layouts, Rich text rendering, block-based event mechanisms, etc., including: Mgbox, Mgtablebox, mgtableboxstyled, Mgscrollview, Mgbutton, Mgevents, Mgeasyframe, mgline, etc., where Mgbox also supports the screenshot method.
Github:https://github.com/jverkoey/nimbus
The well-known framework provides a very rich set of UI components that can make development easier and more efficient.
Github:https://github.com/grouper/flatuikit
A flat design UI component, similar to WP or IOS7 style.
Github:https://github.com/muccy/mukmediagallery
Media Library effects, support for pictures, videos, and audio.
Ptshowcaseviewcontroller
Github:https://github.com/exalted/ptshowcaseviewcontroller
Also a media library effect, supported by more formats, including: Pictures, videos, PDFs, etc.
Github:https://github.com/mwaterfall/mwphotobrowser
Image display effect, support local and remote pictures, use is also relatively simple, as long as the implementation of the Mwphotobrowserdelegate protocol:
@interface Testviewcontroller () <mwphotobrowserdelegate>{nsarray *_photos;} -(void) doAction {Nsmutablearray *photos = [[Nsmutablearray alloc] init]; For (...) {mwphoto* photo = [MWPhoto photowithurl:[nsurl urlwithstring:url];//Set picture address Photo.caption = Descr Iption; setting description [photos Addobject:photo]; } _photos = photos; Mwphotobrowser *browser = [[Mwphotobrowser alloc] initwithdelegate:self]; Browser.displayactionbutton = YES; Uinavigationcontroller *NC = [[Uinavigationcontroller alloc] initwithrootviewcontroller:browser]; Nc.modaltransitionstyle = Uimodaltransitionstylecrossdissolve; [Self presentmodalviewcontroller:nc animated:yes];} #pragma mark-mwphotobrowserdelegate-(Nsuinteger) Numberofphotosinphotobrowser: (Mwphotobrowser *) PhotoBrowser { return _photos.count;} -(MWPhoto *) Photobrowser: (Mwphotobrowser *) Photobrowser Photoatindex: (nsuinteger) Index {if (index < _photos.count) return [_photos Objectatindex:index]; return nil;}
Ios-image-filters
Github:https://github.com/esilverberg/ios-image-filters
offers a variety of image filter effects.
PDF Reader Core for IOS
Github:https://github.com/vfr/reader
PDF Reader Core.
Github:https://github.com/cocoanetics/dtcoretext
Support for rich text display such as HTML.
Github:https://github.com/fuerteinternational/ftcoretext
Rich Text view
Github:https://github.com/akosma/coretextwrapper
Support for multi-column text views
Github:https://github.com/nicklockwood/base64
Provides BASE64 encoding of a string
Github:https://github.com/rnapier/rncryptor
Provides AES encryption method
From the community member li_zhi0123 share:
Member Blog:
http://blog.csdn.net/wstarx/article/details/6317779
http://iosdeveloper.diandian.com/post/2011-05-21/932272
Develop several common open source class libraries and:
1.jsonjson encoding and decoding
2.GTMBASE64 base64 encoding and decoding
3.TouchXML parsing
4.SFHFKeychainUtils safely save user password to Keychain
5.MBProgressHUD Awesome one loading wait effect frame
6.ASIHTTPRequest and other related protocol encapsulation
7.EGORefreshTableHeaderView drop-Down refresh code
8.AsyncImageView asynchronously loads a picture and caches the code
9. The erection of similar setting is also a column procedure
10.mbprogresshud--Progress Indicator repertoires
11.flurry--Detailed usage statistics
12.coreplot--2d graphic Plotter
13.GData Client--iphone All Google related services on the class library
14.sdwebimage--Simplified Network image processing
15.regexkitlite--Regular Expression support
Libraries that may be used:
1.EXIF:SVN Checkout Http://iphone-exif.google.code.com/svn/trunk/iphone-exif
2. Image processing: SVN checkout http://simple-iphone-image-processing.googlecode.com/svn/trunk/ Simple-iphone-image-processing-read-only
AppStore software ranking related, 工欲善其事, its prerequisite.
1. Download ranking Related: AppAnnie
2. User Behavior Analysis: Flurry
3.majicrank-Countries Ranking query tool (recommended)
4.appviz-app Sales Statistics software (recommended)
5.podviz-user reviews and other viewing tools
6.appfigures-Report Statistics Analysis tool
Develop several common open source class libraries and: Reference 1.json JSON encoding decoding 2. GTMBASE64 base64 encoding decoding 3. Touchxml XML parsing 4. Sfhfkeychainutils safely save user password to keychain in 5. Mbprogresshud is a great loading wait effect frame 6. ASIHTTPRequest HTTP and other related protocols encapsulation 7. Egorefreshtableheaderview drop-down refresh code 8. Asyncimageview asynchronously loads the picture and caches the code 9. Similar to the setting of the erection of the column procedure
Scan WiFi Information:
http://code.google.com/p/uwecaugmentedrealityproject/
http://code.google.com/p/iphone-wireless/
Barcode Scanning: http://zbar.sourceforge.net/iphone/sdkdoc/install.html
TCP/IP communication protocol: 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:https://github.com/facebook/three20
Google gdata:http://code.google.com/p/gdata-objectivec-client/
720 Panorama Display 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 encoded decoding: http://code.google.com/p/json-framework
Base64 encoding decoding: http://code.google.com/p/google-toolbox-for-mac/source/browse/trunk/Foundation/?r=87
XML parsing: Https://github.com/schwa/TouchXML
Safely save user password to keychain: Https://github.com/ldandersen/scifihifi-iphone
Load wait effects framework (Private API): Https://github.com/jdg/MBProgressHUD
HTTP and other related protocols encapsulation: Http://allseeing-i.com/ASIHTTPRequest
Drop-Down Refresh code: Https://github.com/enormego/EGOTableViewPullRefresh
Load the picture asynchronously and cache the code: http://www.markj.net/iphone-asynchronous-table-image/
iphone Tts:https://bitbucket.org/sfoster/iphone-tts
iphone cook book Source: https://github.com/erica/iphone-3.0-cookbook-
iphone Regular expression: http://regexkit.sourceforge.net/RegexKitLite/
OAuth Authentication: http://code.google.com/p/oauth/
http://code.google.com/p/oauthconsumer/
GitHub has a large number of excellent third-party frameworks