mobile_device:ios
這是本文件的舊版!
目錄表
Developer
Doc & Book
Objective-C
- objc.io - A periodical about best practices and advanced techniques for iOS and OS X development.
Frameworks
- Awesome iOS - A curated list of awesome iOS frameworks, libraries, tutorials, xcode plugins and components.
- ReactiveCocoa A framework for composing and transforming streams of values
- Bolts-iOS Bolts is a collection of low-level libraries designed to make developing mobile apps easier.
Function
Remote Notification
如果要使用這種情況,必須要implement 以下的 method,如果需要長時間使用的話 App 很容易會被 Suspend,那就必須要使用 Background Mode(remote notifications) 來避免App被系統 Suspend
From Apple:
This method will be invoked even if the application was launched or resumed because of the remote notification. The respective delegate methods will be invoked first. Note that this behavior is in contrast to application:didReceiveRemoteNotification:, which is not called in those cases, and which will not be invoked if this method is implemented.
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler NS_AVAILABLE_IOS(7_0);
收到 Push 後,不論 App 是否有被開啟,在 iOS 7 都能有 10 秒鐘的存活時間,你能在這段時間內執行 MapKit 來取得定位資訊,再回傳給 Server。
application:didReceiveRemoteNotification:fetchCompletionHandler:
Use this method to process incoming remote notifications for your app. Unlike the application:didReceiveRemoteNotification: method, which is called only when your app is running in the foreground, the system calls this method when your app is running in the foreground or background. In addition, if you enabled the remote notifications background mode, the system launches your app (or wakes it from the suspended state) and puts it in the background state when a push notification arrives. However, the system does not automatically launch your app if the user has force-quit it. In that situation, the user must relaunch your app or restart the device before the system attempts to launch your app automatically again.
When a push notification arrives, the system displays the notification to the user and launches the app in the background (if needed) so that it can call this method. Launching your app in the background gives you time to process the notification and download any data associated with it, minimizing the amount of time that elapses between the arrival of the notification and displaying that data to the user.
As soon as you finish processing the notification, you must call the block in the handler parameter or your app will be terminated. Your app has up to 30 seconds of wall-clock time to process the notification and call the specified completion handler block. In practice, you should call the handler block as soon as you are done processing the notification. The system tracks the elapsed time, power usage, and data costs for your app's background downloads. Apps that use significant amounts of power when processing push notifications may not always be woken up early to process future notifications.
Audio
Multipeer Connectivity
Swift
- YouTube
- Brian Advent - Swift
- Rasim Muratovic - Swift Programming Tutorial
UI
- Cocoa Controls open source and commercial UI components for iOS and OS X
- SDWebImage Asynchronous image downloader with cache support with an UIImageView
- SWRevealViewController side view controllers
- EGOTableViewPullRefresh A similar control to the pull down to refresh control created by atebits in Tweetie 2
- UIBubbleTableView Cocoa UI component for chat bubbles with avatars and images support
- PTSMessagingCell provides the basic functionalities of a messaging cell as used in the iOS Messaging App or WhatsApp
- BDDynamicGridViewController Data-aware view-controller that displays a UIView list in an automatically laid out grid
- ios-filter-control An iOS Filter UIControl Subclass. Zero Graphics. Highly Customizable
- CMPopTipView Custom UIView for iOS that pops up an animated “bubble” pointing at a button or other view. Useful for popup tips
Reference
UX
Design
- ios8-ui-kit - And extended and updated to iOS 8 UI Kit for Sketch
Icon
Xcode
Xcode 6 Live Rendering
Build Tool
CocoaPods
CocoaPods is the dependency manager for Objective-C projects. It has thousands of libraries and can help you scale your projects elegantly.
Carthage
Simulator
Scale
預設只有 100%、75%、50% 三種解析度,但是 iPhone 6 Plus 的解析度高 2208 像素,雖然可以縮小成 50%,1104 像素仍然放不進去 1080 高的螢幕,導致無法一次看完整個畫面。
defaults write ~/Library/Preferences/com.apple.iphonesimulator SimulatorWindowLastScale "0.45"
可以將比例改成自訂的數值,但如果有改回原本預設的三種解析度,就要自己再重新設定。
Plug-ins
Copy to "~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/"
- cocoapods-xcode-plugin Dependency management helper for your CocoaPods, right in Xcode
- Lin-Xcode5 A Localization Manager for Xcode 5
- FuzzyAutocompletePlugin A Xcode 5+ plugin that adds more flexible autocompletion rather than just prefix-matching
- ColorSense for Xcode Plugin for Xcode to make working with colors more visual
Translation
-
- AppleLanguages (zh-Hant)
- AppleLanguages (ja)
Testing
Reference Projects
- Inkpad Vector illustration app for the iPad
Misc
Analysis / Crash
- LaunchKit - a suite of tools that makes it easier to build, launch, and manage mobile apps.
Network Debugging
Blog/Forum
iOS 8
iOS 9
iTouchTW
介紹iPod Touch和iPhone上所有的軟體,其中包括AppStore、Cydia、Installer。
iPhone tw
Stanford on iTunes U
mobile_device/ios.1456850862.txt.gz · 上一次變更: 由 sars
