I have been updating my iOS apps(My Day ToDos and it's Lite version) ever since I released it late last year which has been one of the most tedious processes. Actually for me, it's only frustrating when I have to upload a new screenshot for my app, which requires me to drag and drop images to iTunes Connect for every screen size and every localisation. However recently I came across this fantastic tool for automating that process. That is one of the things that, I will be talking about in detail in this post.
Enter Fastlane the solution to one of my biggest problems.
Updating iOS apps
When I buy an app, I read the description and look at the screenshots and if I like them, then I buy them. As a user the one thing that I would really annoy me would be when the actual app doesn't work or have any of the features in it's description or look anything like it's App Store screenshot.
Since I have an app on the App Store as well, my goal is to not to annoy any potential users who are like me and hence I tend to keep my screenshots up to date. Thankfully updating the app's App Store description is fairly straightforward and easy to do on iTunes Connect. Uploading screenshots however is not.
Uploading new App Store screenshots to iTunes Connect
I never did enjoy this process, I mean,
- drag and drop images
- wait for them to upload
- then click save
- then wait for it to save
Ahh, this was so so painful and every time I did that, I just thought, I am smart, I have 2 degrees in Computer science, published research (3 research publications), this is surely not the best use of my time. I would dread the idea of changing the look of the app just because that would entail me uploading new screenshots. I kept thinking, surely there has to be a way to automate this process and I should find it, I have done something similar before (more on this later).
Enter Fastlane the solution to one of my biggest problems.
How did I find out about Fastlane?
While I cannot remember which Google search had Fastlane in the result but it was this podcast titled Swift Evolution and Fastlane which helped me learn more about it. However a big THANK YOU to Felix Krause and his team for giving us Fastlane, it makes life heaps easier!!!!!
What is Fastlane?
Fastlane is a build automation tool which does a whole lot and it evolves quite rapidly. While this tutorial on Getting started with Fastlane will give you an idea of how things work it is out of date and hence something like snapshot may not work as the tutorial describes.
Apparently, Fastlane works for both iOS and Android, but I have only used it for my iOS app, so I will just be talking about it in terms of an iOS app.
Apparently, Fastlane works for both iOS and Android, but I have only used it for my iOS app, so I will just be talking about it in terms of an iOS app.
How did I learn Fastlane?
Thankfully Fastlane is very modular so you can use it for your specific needs. I had some trouble finding learning material for learning all other aspects of build automation that Fastlane offers, hence I learned what was most relevant to my problem i.e. uploading screenshots. I used the deliver utility via my very simple fastfile. I am the only one working on my app, I do not have a team so I have to be very careful as to what I invest my time into. Therefore I did what mattered the most and released the 3.0 update for my app for which I had to upload a total of 425 images(screenshots). Ahh nice, just writing that and knowing that I did not have to upload all those screenshots is making me smile, I am so so happy. I could potentially add a few lines of different smilies here but the only message that would send would be that I am a nerd whose wet dream just came true so I will avoid it. Anyway on a more serious note here's a link to some of the resources that I looked at while learning Fastlane,
- The README file of the Github repo
- Documentation for deliver
- Swift evolution and Fastlane tutorial
- Running Xcode 7 UI tests from the command line
- Docs for Xcodebuild
- Examples of how others are using Fastlane
Wait what similar thing have I done?
I mentioned earlier that I have done something similar i.e. automated certain aspect of my work, so I will mention that briefly here. In my last job, I was working as a full-stack developer and what that meant was I was given a problem(feature or bug fix) as handed to my manager by the client and I had to solve it. I had to analyse, code, make it look presentable and finally test it before giving it to the clients. The better(more thorough) I got at testing, the more annoying the process became. UI testing was annoying, Ahhhh, it was so so frustrating for me to just sit there and click a bunch of things, at that point I thought, this is 2015, there has to be a way to automate some of this stuff. Hence I spent a weekend finding something that would could help me automate UI testing and make my life easier. I found and implemented a solution(using Protractor) that helped me automate some of the testing in my last job.
In summary
If you are developing iOS apps and have an app(s) on the App Store and are not using any means of build automation, then I highly recommend that you consider using Fastlane. If you are,
- An indie developer working alone: imagine how time you could spend on thinking about building that awesome new feature or researching ASO keywords for your app or learning what marketing techniques you could try. Yes you could do all that in the time that
- If you are a company who has a bunch of iOS apps: You really need to use something like Fastlane if you aren't already. I mean think of the resources(money, people etc) you would save? Fastlane does have an initial investment i.e. you would have to give one of your employers(a sys admin perhaps?) some time to learn it, but I assure you that investment is absolutely worth it! That initial investment would save you heaps(lots) of money in the long run.
All in all, go Fastlane!!!!!
Comments