Monday, May 07, 2018

Android Development: Day 0 - You're Probably Wondering How I Ended Up in This Situation

*Record Scratch*

*Freeze Frame*

Yup, that’s me holding a Google Pixel 2. If you know me at all, you’re probably wondering how I ended up in this situation.

I’ve been developing iOS apps and the occasional macOS app now for 10 years. I’ve immersed myself in the ecosystem, love it, and I’m not stopping. However, when an opportunity arose recently at the day job to work on an Android app, I was intrigued.

I’d looked at Android development from time to time, but it’s only recently that I thought it would be something I wanted to spend the time to learn.

For May 2018, I’m diving deep into Android. The reasons I said yes now are:

  • Android Studio
    • It’s Not Eclipse™
    • Still not a good native macOS app by any stretch of the imagination
  • Kotlin
    • It’s very Swift-like
    • Kotlin Native - iOS, macOS, and WebAssembly are all target platforms
  • Needed something developer wise to learn this year
    • Learned Ruby on Rails last year
  • Theory that Google and Apple had cross pollinated enough ideas that learning Android development would be incremental over iOS
    • It’s early days, but this theory is looking decent.
    • e.g. ViewController on iOS is an Activity on Android
    • Also, leveled up Git, Bash shell scripting, and Unix in 2017, all those skills would help with Android

Wednesday, April 18, 2018

Android Development: Day 1 - I Don't Complain About Xcode Much, but Now I'll Never Complain About Xcode Again

I’ve been doing a bit of Android development here and there for the last couple years but today is the day I started digging in to really lay down some code.
Since I’d experimented, I opened an Android Studio 2.2 era project to use on Android Studio 3.0.1, the latest and greatest as of this writing.
Here are my notes on the experience:

The Good

  • I got everything updated and using the minSdkVersion
  • Realized I was using sdkVersion 26 (Android 8) RC1 libraries in the project, which is not what you want

The Bad

  • You have to update so many, to many, things
    • Android Studio
    • SDK Platforms
    • SDK Tools
    • Gradle
    • Kotlin
  • Any update can fail on my corporate network because they come from a variety of Internet repositories:
    • Google
    • Maven
    • JCenter
  • Android Studio and/or the behind the scenes command line tools have a hard time remembering or using corporate proxy server settings
  • Gradle does not gracefully recover from stalled or blocked downloads, it will happily spin seemingly forever
  • Changing the minSdkVersion (resetting from Android 4.4 to 23, aka Android 6) restarts most of the above
  • Android Plugin for Gradle 3.0.0 deprecated a whole bunch of stuff that I was getting warnied on with every build:
  • Gradle warnings
    •  I had a “+” in a library import (build.gradle) path to mean version 26 or higher.
      • Again an easy fix, but why not a migrator? This was in the old template.
    • Was importing an 1.0.0 of the constraint-layout library when 1.1.0 was available
      • Again an easy fix, but because of the network issues, this blocked forever
  • Android Studio keyboard shortcuts are garbage
    • Building & Running Should be ⌘B and ⌘R respectively, not ⌘F9 and ⌃R
    • No Keymap for Xcode when there are one for Emacs, Visual Studio, Eclipse, NetBeans and JBuilder just feels passive aggressive

The Ugly

  • Gradle just stopped building and I had to go delete some directories manually
  • Because of the aforementioned network issues, all this took around 1/2 day 😭

Thursday, February 15, 2018

Apple Glass Will Replace Dumb Glasses

I’d never heard of iDropNews before today, but they have some beautiful renders of a potential Apple Augmented Reality (AR) product called Apple Glass:

They got me thinking. Let’s just say Apple is working on AR glasses for a launch in Fall 2020.

The biggest feature isn’t Augmented Reality…

It’s the Dumb Glasses market, stupid!

Any facial augmented reality solution is going to fail if they aren’t fashionable and are user hostile to spectacles, contacts, and sunglasses. Apple has more than likely come to the same conclusion after seeing the Google Glass debacle. A high level of fashion has to be baked into the product.

To maximize their market opportunity, Apple must be working on vision correction as a core feature. The market looks enormous. An estimate from Grand View Research says the worldwide eyewear market was $102.66B USD in 2015.

In North America, the majority of the eyewear market is spectacles:
If Apple is going to sell a lot of Glass (or whatever they’re called), they need to replace dumb spectacles. Is Apple going to make lenses custom lenses for this product? I don’t think so.

What I’d be betting on is that Apple will ship a product that has dynamically configured vision correction. This doesn’t mean optometrists go out of business, but instead of walking out of the office waiting for new glasses, they just send your new prescription to Apple Glass (and you get a copy in the Health app on iOS) and boom, you see at 20/20 or better again. Apple could also take a huge chunk out of Luxottica. This Snopes article has the best breakdown on truth and rumor about their market share I can find.

If you wear contacts, no problem, Apple Glass just turns off all corrections.

Wait, you also switch between indoor spectacles and sunglasses? No problem, Apple Glass darken like transitions (or better?).

That’s right, Apple Glass would also darken like transitions (but better?).

Apple Glass would also be compatible with contact wearers by turning off vision correction.
Need bifocals? No problem, Apple Glass can handle it.

The keynote practically writes itself…

WWDC 2020 - June 8

Tim: Today were announcing three products.

Tim: An Augmented Reality headset

Tim: Vision correcting glasses

Tim: Polarized sunglasses

Tim: …

Tim: Are you getting it yet? This isn’t three products, it’s one.

Tim: I’d like to show you Apple Glass
This would be the culmination of Tim Cook’s Apple. He’d be 60 years old, just shipped Apple’s most revolutionary product since the iPhone, and with plenty of time to pursue any other projects he wished.

Does Apple Glass cannibalize any other Apple products? Apple Watch shrinks a bit as some users that want Glass decide they don’t need Watch too. But if Apple Watch enhances the AR experience through arm motion tracking, Apple Glass could be purely additive.

Apple Glass complements iPhone for the foreseeable future due to processing power/battery life issues.


I didn’t realize when I opened Seeking Alpha this morning it was about Apple’s AR opportunity.