Must-Have Tools For App Developers
We all know how hard app development is. In my opinion going from a blank sheet to a full-fledged production app is super difficult. There are a ton of pieces that you need to put together. I wanted to share some of the tools I use to make my life a whole lot easier. So whether you are a total beginner or an experience developer, I’m sure there will be something here that will grab your attention.
One of those hidden gems but absoultely a life-saver. It all started out with Brenden and his work on a screenshot-maker for iPhone and developed into this great suit of tools I use daily.
One of LaunchKit’s first products and one that grab much attention from developers at that time. It made creating screenshots super simple and cut hours off prepping screenshots for apps. Most recently they released Sketch To App Store, a Sketch template equivalent to their web dashboard.
App Website Builder
This is my second favorite tool [probably tied with the next one] its a simple interface to track all the reviews your apps receive. But what makes it special is the email, Slack integration and share features. You can sign up to be alerted by email when new reviews come in or you can integrate it directly into your Slack account for the whole team to view. Even better, you can auto-share 5star reviews to a Twitter/Facebook account you assign. The reviews are then shared as an image with a link to the full review (On a dedicated LaunchKit page). Take a look at an example below
Excellent, but for iWatch Restriction: This app is everything I need for my circuit training, perfect for creating your…launchkit.io
You have to add each country seperately. Launchkit already promised to address this but have yet to do so. This is critical because you don’t want to have to go add each country just so you can see the review.
Release Notes Card
A new addition to their suit, release notes card allow apps to present release notes to users remotely. you create them on their dashboard online and with a one line of code, you can present them anywhere in your app. They popup in a form sheet like manner and look awesome. This is super handy because you can alter the notes remotely and are not forced to hardcode it into your app.
Super User Dashboard
Another new addition to the stable, this tool allows you to define super users. Currently limited to only two criteria — 1. how many times a user opens our app — 2. how long does a user need to be use the app. They do the rest. All you have to do is initially register the user and thats it. With the criteria set, all you have to do is check .isSuper() and do whatever you want. This concept is extremely powerful when used properly. For example you can give users free stuff or bonus with a purchase or maybe even show less ads.
Super Users are currently limited to two criteria. Allowing more customization maybe even based on in-app events would be super.
In my opinion, one of the hardest things is the onboarding process. It needs to look appealing, engaging without being too much and detering your brand new user. OnBoard Builder helps you achieve that. It uses a similar web dashboard to help you configure your onboarding experience and a fairly similar UI. Presenting it is no different than presenting release notes card — its a one-liner.
I have no figured out a way to tie it to in-app actions. What if I want the user to login or prompt them for their location, healthkit or notifications during onboarding?
If anything needs to be done remotely, its your app config, more so than release notes or onboarding. Remote config parameters are super handy when you want flexibility over certain things. The biggest advantage is that you alter these paramters remotely WITHOUT having to go through an app review. You also don’t have to worry about no internet connection because you can always have default values within your app and use alter the values from the cloud when connection permits.
This is a nice to have feature but nothing that wasn’t done anywhere else — Probably even better. The advantage here is that you are already using many of LaunchKits tools so you might as well integrate the sales reporter. As with the review monitor tool, you can sign up for daily email updates on your downloads, integrate it with Slack.
Personally I would love to see the reporter expanded to include more data, as well as visual information. Graphs of user growth, app downloads etc. Also maybe information on super users and other LaunchKit specific tidbits.
This is definitely widely known and probably one of the best developer tools out there. Fabric was released by Twitter back in 2014 and was intended to bundle many of its developer tools in one. Fabric combines — Answers, Crashlytics, MoPub, Beta testing, TwitterKit, Digits — into one easy suit. Farbic has also recently partnered with many 3rd party libraries like AppSee and Amazon Cognito Sync and many more and is quickly becoming to go to developer kit for integrating awesome libraries.
The bread and butter of Fabric is Answers — The most widely used app analytics. The screenshot below shows you Chronic Timer dashboard. At the top you can the number of users currently online, with a small graph below it showing the variations over the whole day. Below that are 5–6 boxes. DAUs, DNUs, MAUs, Crash-free users, number of sessions and an additional box for extra events. In Chronics case its purchases.
Answers allows you to track additonal in-app specific events, or create your own custom event. Its as simple as a one-liner to trigger an event. And coupled with Xcode’s code completion, filling in the details is super easy. For both Chronic Timer and StockSwipe I use these events to track when users have shared or rated my app. When they share, I want to know to which platform and so on. This requires some action on your end as you need to fill in the blanks and Fabric doesn’t/CAN’T do that by itself. When rating, I just want to know they rated it. Reviews take a few days to show up anywhere so its great to just have an even tracker that gives you a fairly good idea that someone rated your app. Note that Apple doesn’t actually allow you to see that so all we can track is that a user was guided from our app to the review page on the appstore.
Beta testing is everything Apple’s Testflight should be. Its super simple and well integrated. You just add dev testers to your Fabric account and they receive an email with all the information. On the other hand, Apple’s Testflight is a huge pain in the ass. You have to decide if they are internal or external testers. Internal testers need to be added with some responsibility role into your teams iTunes Connect. For external testers, Apple requires that you have your app reviewed before external testers can access it 💩💩💩
Because its not an Apple tool, Fabric testers need to install Crashlytics and requires provisioning profiles to be set in place.
It all started with Crashlytics and is probably one of the things developers care about the most — is my app crashing? Ok why? — Crashlytics helps address both these questions. When a crash occurs, Crashlytics sends out a report that can be viewed in its web dashboard [Fabric dashboard]. From there you can see more details like — how many times did this crash occur? — how many people are impacted by this? Also it is tied to Answers to what we saw under “Crash-Free Users” came from that integration.
TwitterKit is designed for developers interested in integrating Twitter features in their apps. From Twitter login to Timelines and like/share features. With this kit, you can do all that super easy. For example, setting up a timeline is as simple as a few lines of code, TwitterKit handles everything else like showing the tweets, creating the timeline etc. There is also a ton of documentation on Twitters developer website as well as the Twitter developer forum where you can ask questions. You guys will find me on there complaining ALOT [Twitters devs are not the quickest to address problems]
Probably the backend of every new app out there. Parse has grown tremendously over the past few years. Initially an independent company, it was acquired by Facebook in 2013. Nevertheless it has remained one of the best options out there for hosting a database at extremely competitive pricing — Zero for new apps and only starts to cost when you exceed certain thresholds which are EXTREMELY generous.
As with almost every library dedicated for mass use by developers, there are two main components — 1. The Parse web dashboard 2. The Parse API/SDK — Once you have an account setup, you start by registering your app and integrating the API using the SDK into your app.
Parse Web Dashboard
The dashboard acts as an interface for adding/removing stuff from your database. Its not the only way as you can and will probably do so in code [Atleast alter objects in code]. With Parse integrated into your app, you are ready to start adding stuff into your database [To be retrieved at a latter time for use]. You can create rows and columns of data and all of it can be wrapped around a class. When retrieving data in code, all you have to do is query that class and get the info you are looking for. In the query, you can filter the data to get exactly what you want. Its super flexible and easy to use.
To me the biggest benefit was the web interfact. Because I was still a new developer, I couldn’t achieve what I wanted in code. Parse dashboard allows you to add stuff from a .csv which is AMAZING. You can basically create your whole class in excel and just upload it to Parse. For StockSwipe, I have a class called “Stocks” in which I store all the stocks I want to query in my app. I then update the objects in code to reflect user input etc.
Parse has really many use-cases but one of the basic use-cases for any app is user login. With Parse this can be simplified greatly. You can use Parse UI to handle all that login logic for you! It also integrates with Twitter, Facebook logins and even provides its own username/password UI.
Notifications are a big thing right now and probably one of the most undervalued features by developers. Smart developers will utilize notifications frequently to engage users with their apps. Facebook uses it all the time to tap-bait you into going on Facebook. Starbucks uses it when you drive by one of its locations to remind you of your addiction. With Parse Notifications any developer can sendout push notifications using their web interface. Its pretty plug-n-play really.
Beginning 2016, Facebook announced that it was shutting down Parse and its hosted apps functionality, January 28, 2017 — what is that you ask? Basically its main functionality. It will no longer host apps for developers. That doesn’t mean its completely over. Developers can still host their own Parse Servers and utalize all of Parse’s open source tools and API as before. Just on their own servers. When Parse initially announced this, I had a mini-heartattack but was quickly claimed down when I discovered that my apps weren’t going to go to shit. StockSwipe relies heavily on Parse so it would have been a disaster.
AWESOME Github Libraries
For those of you that don’t know Github yet, checkout the wiki. On Github, there is no shortage of awesome iOS libraries. I’ll just list my favorite Github libraries but won’t go into describing them, as each repo already does a great job at explaining itself. Keep that list regardless if you have a use-case for any of them — You WILL one day and this will help. I ⭐ all my favorite libraries on Github so I can easily find them
DZNEmptyDataSet — A drop-in UITableView/UICollectionView superclass category for showing empty datasets whenever the…github.com
DZNPhotoPickerController — A photo search/picker for iOS using popular image providers like 500px, Flickr, Instagram…github.com
DZNSegmentedControl — A drop-in replacement for UISegmentedControl for showing counts, to be used typically on a user…github.com
Example code for creating expanding table view cells using stack views, introduced in iOS 9. UIStackView is a view…github.com
SweetAlert-iOS - Live animated Alert View for iOS written in Swiftgithub.com
Version 2.2.4, synced to MPAndroidChart #2e41714 Xcode 7.3 / Swift 2.2 / 3.0 iOS 7.0 (Drag .swift files to your project…github.com
CSStickyHeaderFlowLayout - UICollectionView replacement of UITableView. Do even more like Parallax Header, Sticky…github.com
SWTableViewCell - An easy-to-use UITableViewCell subclass that implements a swippable content view which exposes…github.com
TKSubmitTransition - Animated UIButton of Loading Animation and Transition Animation. Inspired by https://dribbble.com…github.com
1]: AppStore version doesn't have the latest, though. Coming soon. [*]: Content are shown for demo purpose only of how…github.com
SKSplashView is a simple class to create beautiful animated splash views for transitioning between views. Perfect as a…github.com
ViralSwitch - A UISwitch that infects its superview with its tint color.github.com
Onboard - An iOS framework to easily create a beautiful and engaging onboarding experience with only a few lines of…github.com
SwipeView is a class designed to simplify the implementation of horizontal, paged scrolling views on iOS. It is based…github.com
Swift-Beautify - An iOS app written entirely in Swift, which let users design the interface of their choicegithub.com
SBShortcutMenuSimulator - 3D Touch shortcuts in the Simulatorgithub.co
SwiftSpinner - A beautiful activity indicator and modal alert written in Swift (originally developed for http:…github.com
AHKActionSheet - An alternative to the UIActionSheet inspired by the Spotify app.github.com
AMPopTip - An animated popover that pops out a given frame, great for subtle UI tips and onboarding.github.com
BreakOutToRefresh - Play BreakOut while loading - A playable pull to refresh view using SpriteKitgithub.com
MZFormSheetPresentationController provides an alternative to the native iOS UIModalPresentationFormSheet, adding…github.com
keychain-swift - Helper functions for saving text in Keychain securely for iOS, OS X, tvOS and watchOS.github.com
MailChimp is an email marketing service and a great one at that. It operates on a freemium model which makes it ideally suited for new app developers. Most of the service is free and MailChimp only beings to charge once you exceed 2000 users.
As a new developer you will likely read alot of how to make your app successful and so on. One of the common things most agree on is a good email marketing strategy, which relies heavily on your email list. One area where this is definitely essential is when you are still in concept and are creating/building interest around your idea. It will be essential to harness that interest with a email caption subscription page [boy thats a full-mouth]. MailChimp allows you to create a subscription form from any List you create. And it will handle capturing emails and adding it to the list. As with emails, you get to choose from a few dozen options and enable/disable features so its super customizable.
Integrating MailChimp with Parse
A lot of apps require user login which is then stored somewhere, for example on Parse [API does that automatically under the “User” class]. App developers can then go the additional step and take advantage of this massive user list by moving this list to MailChimp. There are two ways that I can think of to achieve this. Export your Parse users to .csv and import them into MailChimp [that feature exists] OR use ChimpKit3 to automate this process within your app. With a few lines of code, you can trigger ChimpKit to transfer the users name, email and whatever else you like directly into your MailChimp List.
MailChimp gives you a lot of flexibility when designing your emails. Its all structured around templates, with 3 options to build them — Basic which guides you through a step-by-step process, selecting column, adding blocks to build your full template — Themes which allows you selected pre-made templates around a theme — Code your own which allows you to get down and dirty and just make your own. I managed to design some beautiful emails with the basic function. I then created 2 templates for the different types of email layout I’ll be using frequently.
When you want to create a campaign, MailChimp guides you through the process step-by-step and. Provides you with a checklist mean to ensure that you don’t miss anything [definitely nice to have to go over everything before you mass send something]. From there its as simple as hitting send.
Once sent, you can analyze the status report to see things like — open rate, click rate, industry average, unsubscribe numbers, and which links they clicked within your app.
With MailChimp automation, you get to send automated emails. This feature is not part of the freemium model but I can see this as being super useful. For example, app developers can auto-send predesigned email templates a couple of days after a user signs up on their app. Developers can also share tips and tricks and have it automatically sent 2 weeks after signing up for example.
What Do You Think?
I would love to hear your response regarding the update? If you enjoyed reading this article, please hit the ♥ button in the footer so that more people can appreciate it! 😊
My Other Stories
As many recruiters in sillicon valley might know, I’m currently on the search for the next exciting opportunity.medium.com
Not too long ago, there was a lot of negativitiy towards Twitter. It seemed like all the media outlets had ganged-up…medium.com
I like to describe myself as a technologically savvy person whos able to leverage experience and a broad background to excel in a variety of roles. Although I have an engineering degree, I have been drawn to various other areas through sheer curiosity, and have developed a strong passion in them. I have dabbled around in the stock market, and currently work on making awesome apps. And I enjoy amongst many things technology especially the FinTech space, traveling, some good fitness.
The SIMPLEST workout timer app! For Interval, HIIT, Tabata, Yoga, Boxing, Runningwww.chronictimer.com