Software Dev

The Elm Architecture

I’ve been trying to understand the Elm Architecture for a new iOS project. I kept reading over this article and thinking, “Wait a minute…. What’s the catch here? This seems too simple.” ๐Ÿง

๐Ÿ‘‰ The Elm Architecture: Simple, yet powerful โ€“ An overview by example

I like that this architecture can be explained in a very short post with examples.

The beauty of The Elm Architecture lies in its simplicity.

That article is simple but assumes a web UI and explicit mentions HTML ๐Ÿ™„. Here is a funnier and more useful article about Elm for iOS. ๐Ÿ˜‚

๐Ÿ‘‰ Elm architecture in iOS: Why you donโ€™t need shit like RxSwift or MVVM

Elm architecture can be described as follows

msg -> Model -> View -> msg

I even made my own diagram just to make sure I “got” it. The devil is in the details, but I think this is right. ๐Ÿคท๐Ÿปโ€โ™‚๏ธ It definitely seems simpler than VIPER.

Software Dev

From Nothing to App Store in an Hour

Building, validating, and uploading your iOS app to Apple’s App Store Connect is a surprisingly arduous process. The next time I make an app on my own, I’m totally going to automate the heck out of the process where I can.

This video show how to do it in an hour. ๐Ÿคฏ

The lead maintainer of fastlane demonstrates how easy it is to set up fastlane to automate the process of building, signing and uploading your app to the App Store

Via iOS Dev Weekly.

Software Dev

How (The Heck) To Test Push Notifications

You know those notifications you get on your phone from Medium, Nextdoor, or NPR? They’re surprisingly hard to develop and test. A lot happens to get that message onto your phone.

And testing them quickly and thoroughly without impacting people you don’t want to impact can be a challenge. So here’s a little guide to the latest way to test push notifications on iOS.

๐Ÿ‘‰ How to test push notifications in simulator and production iOS apps

abc

Via iOS Dev Weekly.

Software Dev

Syncing Made (Kind of) Easy in Swift

Here’s a pretty amazing series and GitHub repo on mastering sychronizing data across iOS devices.

๐Ÿ‘‰ Replicating Types in Swift

This is a really tough thing to do well, so this series looks incredibly helpful. The central idea is Conflict-Free Replicated Data Types (CRDTs).

I like this teaser under the headline “Where is the server?”

There is no truth โ€” decentral apps rely on trust rather than truth.

Via iOS Dev Weekly.

Software Dev

Scroll Hitch Rate

Xcode 12 is adding a new metric to objectively track how smoothly your app scrolls. This is kind of cool since scrolling smoothness feels right and is a sign of a good design.

Via iOS Dev Weekly.

Software Dev

What Adding Dependencies Will Do To Your App in 2020

I like the title of this article because it recognizes that pulling third-party dependencies into your app has a cost.

๐Ÿ‘‰ What Adding Dependencies Will Do To Your App in 2020

And yet we all do it because it also has its benefits. ๐Ÿคฆ๐Ÿปโ€โ™‚๏ธ๐Ÿ˜‚

That article is a realistic and practical look how the dependencies affect your app in terms of app launch times, app size, and build times. It compares Swift Package Manager ๐Ÿค“, Carthage ๐Ÿคท๐Ÿปโ€โ™‚๏ธ, CocoaPods ๐Ÿ˜ฌ, manual dependency management ๐Ÿฅบ, and Git Submodules ๐Ÿคฎ.

I still have a dream of zero dependencies ๐Ÿคฉ, but I know it’s not realistic in a complex app. ๐Ÿ˜‘

Via iOS Dev Weekly.

Software Dev

The Prototype Mindset

We developers spend so much time focusing on the details of our work that we sometimes forget about the big picture. The presentation below from try! Swift Tokyo has some really helpful perspective. ๐Ÿคฏ

Think about building the right thing before building it right.

Why are you making software? Know your motivations. It affects how you do your job.

Who do you write code for? Think about how you relate to your company and the end user.

What happens when your tech stack changes? Be resilient in your career. Try new things while also shipping apps.

Be less precious about code.

Realistically, how long will this code last? How robust is robust enough? Be pragmatic. Almost all the code Iโ€™ve written in the last few years is gone by now, either retired or completely rewritten.

Donโ€™t try to be perfect. Donโ€™t hold back out out fear.

Real artists ship.

Steve Jobs

How often do you test? Unit tests are a means to an end. Passing unit tests alone does not mean itโ€™s a good app.

Via iOS Dev Weekly.

Software Dev

Reducing Your Appโ€™s Memory Footprint

Retain cycles, timers, big images, caching. These are a few reasons why your app might be using more memory than it should.

It might be a good time to audit your app and see how much memory it’s really using.

Lazy loading, implementing memory warning methods, using NSCache, autorelease pools. These are a few ways to deal with it.

Also, let’s say, just make a clean, focused software design. ๐Ÿคท๐Ÿปโ€โ™‚๏ธ

๐Ÿ‘‰ How To Reduce Your Appโ€™s Memory Footprint