Day 9: #ProjectUmma - added 3D touch shortcuts for iOS home screen to start/stop session, view history; tested all aspects on 📱 🎉 Next up is wiring them up with storyboard navigation and state responses 🤞 #100DaysOfCode
TIL defining 3D touch application shortcuts doesn’t allow you to control which side the icon appears on… and it’s a bit random between first and third party apps alike (typically on the left but not guaranteed) #iOS #ProgrammingTips
Day 8: #ProjectUmma - 🎄- Integrated HealthKit, added the access prompt, wired up data entry to health store entries 🙌 Technically this means the MVP is ✅ Now I can start to branch out into 3D Touch, Siri, and then watchOS! #100DaysOfCode
Day 7 (finally): #ProjectUmma - built a functional UI to enter new data, wired up data model, confirmed calculations for a session 👍 Next up is persistence and presentation for any entered sessions. Ideas list continues to grow, heh. 🗣📱⌚️ #100DaysOfCode
Needed a temp icon for #ProjectUmma so in true DIY (develop it yourself) fashion I made this lovely little number. Not only am I on trend but clearly design is my future calling 🤪 #BetterThanBlank
Day 6: #ProjectUmma - implemented basic logic in a shared framework 📦 (data types, models, management) and started on a super simple UI to test it all out. Once that’s all verified in-memory I’ll move on to storage and retrieval. 🗣📱⌚️ #100DaysOfCode
Day 5: #ProjectUmma - Temporary branding/iconography in place along with basic app navigation structure. Planning out framework-apps-extensions balance currently before diving in on logic side. 🗣📱⌚️ #100DaysOfCode
Day 4: #ProjectUmma - pivoting to a new one for the time being, putting AR explorations (Appa) on backburner for the moment after exploring use cases IRL. Going for a well rounded app focused on streamlining some health data entry. Bootstrapping currently. 🗣📱⌚️ #100DaysOfCode
Day 3: #ProjectAppa - migrated over the sample #ARKit plane detection logic while formatting and reviewing it to ensure I understand concepts. Will add in ability to prefer horizontal visualization only. So far, so good but the #SceneKit ramp awaits… 🤞🤳 #100DaysOfCode
Day 2: #ProjectAppa - learned about and added a simple Siri intent for donating direct launch at common test locations. 🗣 Fixed iPhone X series inset issue. Planning out how I’d like to do the plane detection/origin prototype UI during my evenings. 🤳 #100DaysOfCode
Day 1: #ProjectAppa - #ARKit research started with sample code and project template installed on device. Settings bundle w/ debug controls added. Copious warnings enabled. Plane detection reimplementation in-progress to ensure I understand all the moving parts. 🤳 #100DaysOfCode
I’ve said it before and I’ll say it again: guard let varName = value else { return } is my jam. #ProgrammingTips
Great breakdown of Meltdown that I just got around to reading. Highly recommended. 🍔🍟🌭👀🗣 dev.to/isaacands…
There’s no guarantee what thread (via a queued dispatch most likely) your -dealloc implementation will be called on. Never do anything in it that could touch UI. #ProgrammingTips
#PresenterTip Notifications are your mortal enemy. Hold Option and click on the menu bar icon to turn on Do No Disturb. If you’ve got an Apple Watch use Theatre Mode to not only enable DND but also keep your wrist motions from flashing the time.
Short-lived objects shouldn’t use KVO at all as they are highly susceptible to unexpected performance penalties. Scope your KVO usage as narrowly as possible and mind the lifecycles. #ProgrammingTips
Building an iOS app without any xibs or storyboards? Make sure you add the base set of launch images or your app will default to the smallest iPhone size possible (480x320). This results in some massive letterboxing depending on Simulator settings. #ProgrammingTips
Where did the speed go?
Lately we had performance complaints from Sourcetree users even after a series of optimizations took care of the obvious issues we could find. While we could see spin logs for various paths that were still heavy, there was nothing jumping out anymore. At this point I needed more data to help spread …
Constants (define HOUR 60*60) are great for clarity/intent but don’t waste compute cycles and energy: use 360 or whatever the constant should be. #ProgrammingTips
Find the regression
When High Sierra came out we got reports of a regression in [Sourcetree](www sourcetreeapp.com)’s dark theme. Building that was an adventure of its own so I was a bit concerned about what might have broken. After sitting down with the Xcode debugger I stepped through and verified all theming code …
A subtle crash
Recently we had a high volume crash in Sourcetree with a limited user count. Roughly 4 crashes a week per user in an onscreen notifications helper. The posting object was alive along with all parameters. The code hadn’t changed in years. What could be the culprit? After much staring and noodling (no …