Still slogging away at #HealthKit refactoring in #exist for #ios as well as adding sleep data from Apple Health. Got some help from @josh to help me figure out the best ways to make my HealthKit code as generic and simple as I can, and after implementing his suggestions I’ve probably cut about half the code involved in the Apple Health integration. I’m expecting lots of bugs to work through, but really happy about cleaning this up, as it’s definitely been the most complicated, messy code in the app.
Not a lot to report today, except that I started a new branch in #exist for #ios, ready to tackle #AppleHealth sleep data, which we’re always getting requests for. I expect It’ll be a painful few weeks (or longer) getting this working and bug-free, but I’m really looking forward to giving users what they want so they can ask us for something else :)
Worked on the login process for #larder for #ios and some refactoring. Tried AppCode again, since it’s been a year or more since I gave it a shot, but I like to use a dark theme for coding and AppCode makes all my fonts look bold when it’s in dark theme. I thought this problem might have been fixed, but it hasn’t and it’s really bugging me. Plus, AppCode makes my computer hot and noisy because it struggles to run such a big Java app. Undecided for now, but not sure I’ll stick with it long-term.
What a week! Spent the past three days feeling stupid, frustrated, and confused, because I couldn’t get this new year ago mood feature working in #exist for #ios. Grappled with two different third-party libraries that didn’t work as I expected them to and roped @josh into an afternoon of helping me debug my #autolayout issues before giving up and building the UI myself from scratch.
This afternoon I managed to get the whole UI built and working with some more help from @josh, so now I can test it out. Hopefully I’ll be able to send this out to beta testers this week.
Spent most of yesterday afternoon debugging an issue in #exist for #ios affecting a couple of users. For some days (but not all), their steps and distance data from #AppleHealth (but not any other data) was super low and incorrect. Lucky @josh was able to help me debug it because I got really stuck and wouldn’t have figured it out by myself.
Turns out the issue was due to me asking HealthKit for data for each day up to midnight for the following day, which sometimes included a tiny number of steps and distance right in that first second of the following day. Once we figured out why I was getting the extra data (totally my fault) and how to exclude it from the results I was sending to the Exist API, the fix didn’t take long. And thankfully Apple approved the update overnight, so it’s already in the App Store. I think that’s the quickest I’ve ever had an update go through Apple review. #laterlog
Yesterday I did some more work on #exist for #ios. I’m still working on building in the new feature to show your mood note and rating from this day a year ago after you submit a mood rating for today. I wanted to re-use layout code for the mood note and rating UI but being the n00b I am, I hadn’t made my old code generic enough, so I spent a good chunk of yesterday afternoon decoupling my code and making it more generic. #laterlog
Yesterday I cleaned up my extra #exist for #ios #git branches and started a new one for a feature that’s been in the Android app for a while—your mood rating and note from this day a year ago. Started working on the API call after you rate today to check if you have a rating and note to show from a year ago. Still need to finish this off and add the UI to show the data to the user.
Today I did some overdue #support tickets instead though, and later tonight I set up macOS in a vm on my pc so I can build some #ios apps. I do have a macbook, but I’d rather be at my pc. I actually got that running with few issues, and I can build apps in xcode without it taking too long — performance seems decent. I’m going to have a go at learning #swift to build the #larder iOS app. I don’t really want to steal it from @belle, but she has enough on her plate already.
So far this week I’ve been mainly working on bug fixes in #exist for #ios and some small refactoring to make my code simpler and easier to maintain. I have a couple of new features on my to-do list to bring the app up to par with @josh’s Android version, so I’m hoping to have all the bug fixes done soon so I can get on with those.
Changed my #rescuetime hours this week to be 4 hours every morning so I have afternoons off for #HelloCode. I was finding it hard to be totally switched off from Hello Code for 3 days a week, and to plan everything I need to do for RescueTime in just 3 days. This setup seems to work better.
Last week I sent a new update of #exist for #ios to the App Store with some bug fixes and some different bug fixes to my beta testers. I also wrote a new post for the #larder blog about why I blog about my code even though I’m not an expert.
- Paid my latest #tax instalment
- Cleared out my inbox (mostly)
- Followed up most of the #changemap tasks for #exist that came in over the past week
- Wrote up the Hello Code monthly report for December and drafted a matching #blog post
- Worked on bug fixes for #exist for #ios, sent a new version to TestFlight, and tried to submit a new version to the App Store but iTunesConnect was broken yet again.
A very late #laterlog to mention that @josh and I spent all afternoon Sunday #pairprogramming to implement a new feature in #exist for #ios: in-app notifications! We’ve had these for a while in the web app, so users are alerted when we’ve made a major change like adding a new feature or integration, but not on mobile. Josh recently added them to the Android app and was kind enough to help me get them done on iOS in an afternoon. Just need to do some testing now, but hopefully I’ll be able to release a small update with this feature included soon!
Update on #changemap on betalist: around 30 waiting list signups in the first day (which will probably be the biggest). Not too bad given the minimal effort. Mostly smallish SaaS startups, based on some email domain browsing. Hopefully people who understand the value of paying for stuff!
My passion for working on #exist for #ios has been reignited! I sent out the latest update including lots of new Apple Health data (workouts, nutrition, active minutes, heart rate) to the App Store this week, so I’m just waiting for it to be reviewed.
For some reason we had a bunch of users all asking us for menstrual tracking over the past week or so, and it’s something I’ve always planned to get from #healthkit but haven’t gotten to yet. So after sending out that update I was really motivated to explore getting menstrual data from Apple Health. Exist doesn’t support it yet but I’ve started working on getting the data anyway. I think my motivation really wanes when I’m working on bug fixes. It’s a very slow, difficult, lonely process for me, and I often struggle to replicate bugs and feel like updates just get stuck in limbo for ages while I worry about how to fix all the bugs. But starting a new feature is always fun and exciting—and a lot faster these days than it was a couple years ago!
Ahh keep forgetting to log lately! Here’s what I’ve done over the past couple days:
- Sent an #exist for #ios update to the #appstore that includes #location tracking. Finally! I’ve been working on this for months, so I’m relieved to have it released. #milestone
- Sent an Exist for iOS update to beta testers that syncs more data from #healthkit
- Started drafting one of three #client #content articles due this week
- Did my personal #monthlyreview for October
- Sent out my weekly #newsletter
I’ve been refreshing the Google Store orders page all day, waiting for my new Pixel phone to ship! It’s finally shipped now, so I’m refreshing the parcel tracking page instead 😏
In other news, I did quite the catch-up today on #client #content work. I drafted two of my three articles due this week, and followed up all my client emails. Looks like with another productive day tomorrow I’ll have the weekend free for #exist for #ios work.
HUGE day of #exist for #ios today. I made a new settings screen to handle all the new #healthkit data I’ve been adding, made some changes to how I get HealthKit data to make it more generic, fixed some bugs, and added a bunch of new constants to replace hard-coded values.
I also sent a new build of the #location branch to #TestFlight for beta testers, and took up a big chunk of @josh’s day trying to figure out why I kept getting intermittent 412 errors from the Exist server. (Turned out to be an issue with the default cache policy of
After playing with #healthkit in #exist for #ios yesterday I was on a roll, so today I tried adding some code to the app that makes HealthKit tell me when data updates, so I can do a better job of keeping user data in sync, which has been really tricky so far.
Also tried adding weight data from HealthKit, but we decided it’s better to leave that until the infrastructure changes @josh is working on are done, as it’ll be easier to keep it updated then. But after removing weight, I did add heart rate, active minutes (they weren’t available when I first added steps), and workouts!
I also did some good work along the way to make my code more generic, which should make it more stable and easier to diagnose bugs in the future. Down with magic numbers!
Phew. Plenty of testing still to be done but I’m really happy with how much I got done this weekend.
After that I made a new branch and had a play with grabbing food data from #applehealth and sending it to Exist. It was simpler than I thought, but surprisingly hard to find an app to put the data into Apple Health correctly in the first place. #laterlog
Made some improvements to #location tracking in #exist for #ios this morning. Thankfully, it was mostly a simply process of following threads to their conclusion to figure out what was happening, when, and why, and make it work how I wanted. Very rare for that to happen when dealing with any iOS permissions or background tasks!
Did a bunch of small tasks this morning:
- updated the #exist FAQs page with some new services and data types we’ve added recently
- Pitched a #guestpost to a productivity blog
- submitted my iPhone setup to a site that features user setups every week
- ordered some stuff I’d been meaning to buy for the house for ages
- made a couple of tiny improvements to #exist for #ios
- wrote a feedback survey to send to people who’ve completed my #productivehabits #course
On a totally different topic, I’ve been really torn about #ios development recently, as I think I enjoy doing it, but when I had the chance to submit my resume for consideration for a contract recently I baulked at the idea, and I wondered if maybe I don’t like it that much after all. But the little bits I’ve done on #exist this week have reminded me that it can be fun and it’s enjoyable when I feel confident about what I’m doing—there’s just a lot more for me to learn before I can be confident about iOS development on average.
I’m not sure what that means going forward, but it’s good to rethink how you feel about your work sometimes.
Forgot to log yesterday! Here’s what I did:
- Sent off 3 #client invoices for last week
- Finally edited a client #content article I’d been struggling with, and sent it off
- Pitched some new topics to a client (100% were accepted! yay!)
- Figured out (sort of) an #xcode issue I was having with provisioning profiles so I could send an update of #exist for #ios to my beta testers
- sent my weekly #newsletter
- did some reading for #uni
Started today with a productive morning, fixing some bugs in #exist for #ios before lunch. After lunch I started on my second #client #content article for the week, but got stuck with some confusion about how to proceed with the topic, and had to wait for confirmation from my editor. While I was waiting I watched my lecture and did the readings for week 1 of #uni.