My company’s Internet of Things (IoT) side project began when we couldn’t reset the door lock that we inherited from a previous tenant. It was one of those minor details we learned about after moving in to our new last-minute office.
Normally, people just pay for a new one. But our team was too cheap to replace the lock and no one ever wanted to get the door bell. Plus, we’re engineers and we wanted to fiddle with some hardware.
Our goal was to open the door with a phone or wearable technology. We had several options for how to approach the problem. In theory, we could use an app, an integration into another platform, or anything that could send a signal to trigger the door lock.
So far in our door lock experiment, we’ve developed solutions for a Slack integration, native iOS and Android apps, the Apple Watch, and Pebble. I’ll focus on the architecture of the mobile apps. I admit the final product is a bit over-engineered, but we just love it!
Continue reading “An IoT Side Project: Chima-open-door”
You’ve been working hard preparing for your launch to AppStore. The final step is getting it submitted to iTunesConnect.
You have to fill in the app details, upload the app icon, localized descriptions and preview images— upload them one-by-one going through your list of localizations for each supported device in English; one-by-one for each device in French; one-by-one for each device in German, etc, etc.
OK, 13 languages.
You have to upload screenshots one-by-one for each device, for each locale. Oh that’s O(n²)
Let’s say you have built an awesome app for iPhone & iPad and now it’s ready for launch.
Question, how many preview images exactly do you have to add?
The answer is simple. For each locale, there are 3.5-inch, 4-inch, 4.7-inch, 5.5-inch and iPad screenshots (and don’t forget the upcoming iPad Pro). There are 5 images in each set, that gives you 5 x 5 = 25 pcs for each locale.
Needless to say, you will have to organize 25 x 13 = 325 preview images to iTunesConnect. Sounds scary right?
Continue reading “Manage your AppStore Preview Images in one place – make your life easier with ShotBot”
In WWDC2015, Apple announced iOS 9 for iPhone and watchOS 2 for iWatch. It has been a huge revamp for watchOS. Not until now, a watch app finally runs natively on the watch.
That means the code is now executing on your watch instead of the phone. By reducing multiple times of data transfer between devices, this is going to make the app loads a lot quicker and responds in a shorter period of waiting time.
Continue reading “Spentable (Expense Tracker): How we built our first app for watchOS 2”
Get crash reports from Sentry
We have been using Sentry for collecting crash reports and stack traces for our front-end js, Python, and Rails applications. It is reliable with affordable pricing. Simple to setup with it’s open-source SDK.
However, there’s a fundamental problem when it comes to iOS.
Continue reading “Better StackTrace for iOS crash report from Sentry on Slack”
The MVC Architecture is generally used in developing iOS applications.
However the “ViewController” approach widely used is the most evil part that messes up Views and Controllers: Developer writes both view animation and business logic in the UIViewController, hence introducing a MEGA-ViewController.
In this passage, we will share our experience on how VIPER saves our lives from this monster in one of our projects.
VIPER is not a framework but an approach to iOS application architecture, which stands for:
The “MVC” monster
Typical Model objects are simple, they are just NSManagedObject.
View and Controller are wrapped in a single UIViewController class. The UIViewController class constraints the fundamental view management of the iOS app. As the name convention suggests, view controllers often handle both business logics and logics for responding to user interactions.
Continue reading “VIPER – iOS App Architecture Beyond MVC (Mega-ViewController)”