We seldom underestimate the power of good copy in interface design. Here is a great article by Cynthia Risse who explains with a ton of great examples, how to use great wordings to make your UI standout.
BulletinBoard is an iOS library that generates and manages contextual cards displayed at the bottom of the screen. It can be especially well suited for quick user interactions such as onboarding screens or configuration. Check out the library below :
1. Go to My Apps in App Store Connect, and click on your app.
2. Under App Store, click on App Information.
4. Click Save.
Above code prints the folowing :
// Will update Image
// Did update image
The most common use case seen around is opening and closing a context, for example when handling access to files. A FileHandle requires to be closed once the access has been finished. You can benefit from the defer statement to ensure you don’t forget to do this.
With Xcode 10 came a ton of new changes to Storyboard. If you haven’t seen the WWDC sessions related to Xcode, then this article is for you which highlights all the subtle but relevant improvements to storyboards.
Knowing how to run concurrent tasks or deferring computationally expensive tasks to the background is an essential part of making your app feel responsive. Check out this article by Gabriel Lewis who explains the fundamentals of threading in Swift.
If you work with a large team of developers you may be avoiding storyboards altogether because of inherent issues with merge conflicts and code reviews. Check out this article by Bruno Rocha who goes over how to avoid large UIViewController code by overriding loadView() method to load and attach your nib to the view.
If your app consumes a number of web services that serve JSON then check out this 5 part tutorial series where you will learn how to create a custom networking layer using Alamofire and understand how to use Codable to convert JSON to Swift data models (Classes & Structs)
Great presentation by Warren Burton who goes over the pros and cons of refactoring an existing code base compared to rewriting it from scratch. A must watch for anyone who is maintaining other people’s codebase.
Check out this article that provides an interesting take on iOS development from the perspective of an Android developer. Some of the things that we take for granted as an iOS developer like storyboards and clean integration via XCode IDE are much appreciated by our counterparts.
Networking is one of the most popular features in iOS development but is also the most unintuitive for developers to write unit tests against it. Check out the linked article below to find out how to write unit tests for your networking piece of your code.
Check out this insightful article linked below to find out how to write unit tests for your networking piece of your code.
App reviews are highly opinion based and not fact based and normally not a great way to gauge if an app is good or bad. They sure can be helpful (for a developer), but most reviews are composed of biased rants and half-legible reviews which are hard to sift through. Sadly, most people judge an app just by looking at the app’s review scores even though it does not actually reflect the quality of an app.
People want to be heard, and giving a 1-star or 5-star rating adds oomph to your opinion.
Check out this fantastic article by John Saito who has sifted through 1000’s of app reviews to provide his take on app store reviews. Quote from the article:
After crunching the numbers, I found that over 70% of our app reviews were either 5-star or 1-star reviews. Over two-thirds of reviewers either loved or hated our app.
Apple has always been known to be a flag bearer for user privacy and the evidence for it is now even clearer with iOS 11. With iOS 11 if an app collects location data in the background, then a big ugly flashing blue bar shows up over the status bar.
If you have an app or planning to develop one that continuously scans user location, then check out the article linked below that details how to avoid it.
Whenever Apple releases a major new SDK version there are always a few features that capture the headlines in the developer community. With iOS 11, it was ARKit and CoreML. If you want to explore new SDK features beyond the headlines then check out the linked article below:
Refactoring code may not have any innate business value ( an exception being small performance optimization) and your business won’t immediately get better once refactoring is done. But refactoring is an essential part of software development and frequent refactoring is what keeps the code well oiled to prevent it from going obsolete.
Also, if you are working as part of a team and your team diligently conducts code reviews, then just the fact that your code will be assessed sends signals to the brain making you extra aware to maintain your code clean and keep it well optimized.
An ordered and clean environment, one that is maintained, sends the signal that the area is monitored and that criminal behavior is not tolerated. Conversely, a disordered environment, one that is not maintained (broken windows, graffiti, excessive litter), sends the signal that the area is not monitored and that criminal behavior has little risk of detection.
Check out this article linked below to find out how refactoring can greatly reduce your technical debt.
Here is an article that provides a whimsical take on the evil that is NSObject. If you use classes that inherit from UIKit classes then you directly or indirectly inherit from NSObject.
There are ways to stop this inheritance madness in your classes by marking them as final so it cannot be subclassed. It allows some compiler optimizations, and also makes the code more consistent by removing features that can be achieved in a more Swifty way like code reuse with protocol extensions, generics or composition and polymorphism with protocols.