Every day, new libraries and frameworks appear, aiming to ease and facilitate the development of web and mobile applications. Within this diversity, it’s quite hard to find a really worthy tool for particular needs.
Today, we’ve gathered new libraries for iOS development that worth attention.
Swift, 3.5k stars to date
GodEye is an extensive collection of Swift libraries that allows developers to easy monitor a large list of performance indicators on the iOS app. GodEye is available on CocoaPods, all you need to implement GodEye in your project is to write a single line of code. The GodEye includes different tools for various purposes:
- LeakEye monitors and logs memory leakages;
- CrashEye is used for catching exception and signal crashes, and then returning them to the stacktrace;
- SysemEye monitors and logs data about CPU, RAM usage, FPS, and so forth;
- NetworkEye – catches and analyzes information about network requests and responses;
- Log4G feature displays logs and other information for native iOS apps.
GodEye includes not only libraries for monitoring your app but also a user interface for displaying information. It has a very comprehensive structure and contains multiple sub-projects.
When you want to display all debugging information in a convenient format. You can use it in apps of different types, from an app for custom EHR system to complex eLearning platform.
Spruce is a lightweight, user-friendly library that helps developers synchronize, manage, and launch chained animations that display on the screen in a fixed order. Spruce can keep developers from cringing when designers request complex multi-view animations for a prototype.
When you try to animate some view, you might not know if this view is already prepared for the given animation. For example, if you need to fade in a view, you need to be sure that this view was faded out previously. Spruce gives us the ability to skip this routine just by calling yourView.spruce.prepare(ourAnimations).
As for animation choreography, you can use different sort functions to line up your transitions. To apply a sort function, just use yourView.spruce.animate([.fadeIn, .expand(.slightly)], sortFunction: sortFunction)
As you can see, this library provides developers with an easy-to-navigate interface that is based on natural speech patterns: you can command your view to “slide up slightly” or “expand moderately.”
Objective-C, 3.3k stars to date
With IPAPatch, it becomes easy to inject changes into existing .ipa-files using the powerful Objective-C runtime, even without jailbreaking the app. Using this library, developers can build, run, debug and even link external frameworks to third-party apps. IPAPatch allows developers to implement changes to a UI and even add new UI elements to an existing app. The only restriction is that these changes will only be displayed on a particular device, and the updated version of the app doesn’t get transferred to the App Store.
IPAPatch has clear step-by-step instruction, so all you need to improve the app is Xcode project IPAPatch, decrypted .ipa file, and some spare time.
Swift, 3.8k stars to date
The Request Permission project offers a solution for managing permissions. On top of allowing developers to request permissions, the tool also includes a customizable UI element that developers can embed in their application. This element provides a welcome alternative to default iOS permission requests.
A stylish and user-friendly dialog increases the chances that your users will grant your app the necessary permissions. The simple control that this module provides can save hours of development time. Developers can request any permissions with just two lines of code:
var permissionAssistant = SPRequestPermissionAssistant.modules.dialog.interactive.create(with: [.Camera, .PhotoLibrary, .Notification])
After that, every time developers want to know if they’ve been granted certain permission, they can call the following method:
let isAvailableCamera = permissionAssistant.isAllowPermission(.Camera)
When you need to receive permissions from users to enable certain features in your app.