While working our own separate projects over large spans of time, it becomes obvious to anyone involved with design that the process of migrating from the idea phase to the testing phase is often the most tedious in the process. However, this great length of time is often caused by technical requirements more than anything else.

The iOS app icon process is no exception to this. To add an icon to the phone's home screen to test, the entire app needs to be recompiled, and dozens of different icon sizes need to be made, processed, integrated, and applied to the new app; repeated every time a simple change is made.

This process is not only tedious, but, with the many revisions that final product branding and artwork goes through before release, but greatly time wasting.

What it does

Enter Icns. Icns (pronounced "icons", named after the Mac OS file extension for app icon images), seamlessly integrates the app icon revisions on your computer with the home screen on your phone. Utilizing icns, the process of testing an icon on-device is reduced from many minutes to only a few seconds, over time saving hours or even days as the many icon revisions can be tested and reviewed almost immediately. Most popular image formats (including Photoshop files) can be transmitted immediately from icns' Mac app to the companion iOS client, and from there installed on the home screen; without worrying about converting to different sizes or formats.

How I built it

The Icns Mac and iOS clients are both built in a hybrid of Objective-C and Swift, utilizing Parse as the database and general backend software. Final processing and verification on the image is then handled by a private server, and shipped to the device. When an image is provided to the Mac App, a connection is facilitated between this app the user's account on the Parse database. The parse database then communicates to the iPhone app that an icon has requested installation. The image is then processed and verified by a personal server before being installed on the chosen device. (This entire process normally takes less than 30 seconds).

Challenges I ran into

Though the majority of the project was rather straightforward, the actual installation of the icon would not work with traditional methods. Eventually, a separate piece of server software, separate from Parse, was created to complete the final installation of the icon, and installed on an existing server. In order to eliminate server load on an otherwise already taxed machine, the contents of the icon are encoded and transferred to the phone as a base64 string, and then installed, offloading this taxing process to the phone rather than the server.

Accomplishments that I'm proud of

Using and ensuring the cooperation between two clients, Parse, and a private server was difficult, but enjoyable. It was the final piece of the puzzle to get the entire system working, marking the entrance into much easier and more straightforward UI improvements.

What I learned

This seemingly simple app proved itself to be surprisingly complicated in regards to the amount of different technologies required to get the system working. This experience will no doubt prove itself to be useful in the future, whenever it is needed to utilize many different technologies for a common purpose.

Share this project: