{
  "author" : {
    "name" : "Douglas Hill",
    "url" : "https://douglashill.co/"
  },
  "feed_url" : "https://douglashill.co/full-feed.json",
  "home_page_url" : "https://douglashill.co/",
  "items" : [
    {
      "content_html" : "<p>They should have used <a href=\"https://github.com/douglashill/DynamicButtonStack\">DynamicButtonStack</a> for these buttons in Apple Maps.</p>\n\n<p><img src=\"https://douglashill.co/2026/dynamicbuttonstack-apple-maps/screenshot.png\" alt=\"Screenshot of Apple Maps place detail showing six buttons in a row with truncated labels “We…, Del…, Ad…, Gui…, Fav…, Sh…”\" title=\"\" /></p>\n",
      "date_published" : "2026-10-12T21:28:46+0200",
      "id" : "https://douglashill.co/2026/dynamicbuttonstack-apple-maps/",
      "url" : "https://douglashill.co/2026/dynamicbuttonstack-apple-maps/"
    },
    {
      "content_html" : "<p>Looking forward to speaking about <em>Rust for iOS developers</em> at two more conferences this year: <a href=\"https://swiftconnection.io/\">Swift Connection</a> in Paris (<a href=\"https://www.billetweb.fr/swift-connection-2026\">tickets</a>) and <a href=\"https://www.do-ios.com/\">Do iOS</a> in Amsterdam (<a href=\"https://appforce1.paydro.com/do-ios-2026\">tickets</a>). Both in November in superb, well-connected cities (<a href=\"https://eurostar.com/\">direct trains from London</a>).</p>\n",
      "date_published" : "2026-10-12T20:12:50+02:00",
      "id" : "https://douglashill.co/2026/swift-connection-do-ios/",
      "url" : "https://douglashill.co/2026/swift-connection-do-ios/"
    },
    {
      "content_html" : "<p>Hope everyone at <a href=\"https://swiftleeds.co.uk/\">SwiftLeeds</a> and <a href=\"https://kotlinleeds.com/\">KotlinLeeds</a> this week learns a lot and has a wonderful time. Looks like a great lineup, although I’m not around for it this year.</p>\n",
      "date_published" : "2026-10-12T19:57:08+02:00",
      "id" : "https://douglashill.co/2026/swiftleeds-and-kotlinleeds/",
      "url" : "https://douglashill.co/2026/swiftleeds-and-kotlinleeds/"
    },
    {
      "content_html" : "<p>I had a fun week in Berlin for <a href=\"https://www.nextappcon.com/\">next.app devCon</a> 2026, where I hosted a roundtable on Rust for mobile developers. The scale of the conference was impressive. It felt very different from the iOS conferences I’ve been to.</p>\n\n<h2>Impressive scale and variety</h2>\n\n<p>next.app devCon 2026 grew out of droidCon and was a single event bringing together several mobile developer conferences under different brands, all in the same place over three days. It covered iOS, Android, Flutter, React Native and more. To me, this diversity was the point of the conference. We’re all software developers: we have far more in common than things that set us apart, and those differences are opportunities to learn from each other.</p>\n\n<p>Most conferences I’ve been to have around 200–300 attendees. <a href=\"https://rustweek.org/\">RustWeek</a> and <a href=\"https://tryswift.jp/\">try! Swift Tokyo</a> were larger at around 800 attendees. next.app devCon was on another level, with, I believe, 3000–4000 attendees. There were loads of sponsors. The upper level of the venue was a huge space with all the sponsor booths, smaller talks (using headphones, like a silent disco) and roundtable discussions. It was fun to hang out in that room because there was always a lot going on and you’d run into people.</p>\n\n<p>This impressive scale meant there were so many people to meet and things to learn, which is what conferences are all about.</p>\n\n<p>I felt the talks were perhaps too strictly divided into platform-specific tracks. Often the implementation technology isn’t the main point — if it comes up at all. (This was also <a href=\"https://douglashill.co/2026/rustweek/\">my impression from attending RustWeek</a> earlier this year as a newcomer to Rust.) For example, I listened to a talk from <a href=\"https://www.linkedin.com/in/rafaelmorenocesar\">Rafa Moreno</a> about how AI coding agents (like <a href=\"https://pi.dev/\">Pi</a> or <a href=\"https://opencode.ai/\">OpenCode</a>) work. This was listed under droidCon, but it would be interesting and useful even for someone who has never developed for Android and has no plans to. If you’d filtered out droidCon talks, you’d have missed this.</p>\n\n<p>The conference schedule could have been easier to use. It was laid out as a two-dimensional grid showing time against location, but there weren’t sessions happening in every location at all times, so you ended up scrolling through a lot of empty space. It was better on a large screen, but of course most people are using their phones during the event. Perhaps a design where you can view a one-dimensional list of sessions at a particular time or in a particular space would be worth trying.</p>\n\n<p>With so many talks happening in parallel, it was only possible to attend a small fraction of them, so I wouldn’t make any generalisations about talk quality. I found some of the talks I attended valuable and some less so, like any conference.</p>\n\n<h2>My Rust roundtable</h2>\n\n<p>I’d submitted my <a href=\"https://douglashill.co/rust-for-ios-developers/\"><em>Rust for iOS developers</em> talk</a> to the conference, and I was very happy that it was accepted as a roundtable discussion instead. This is an informal format where attendees contribute to the discussion, and I’d never been to one before. I thought that, for this format, it made sense to expand the topic to include all mobile developers rather than just people coming from iOS/Swift.</p>\n\n<p>I was reasonably happy with how the roundtable went. The discussion was naturally high-level, given that attendees came from a variety of backgrounds, but I think a few people learned about what Rust is and how it could be useful. It was also nice to see that I’m not the only person interested in both mobile development and Rust!</p>\n\n<h2>Next year</h2>\n\n<p>The main area I hope the conference can improve is its sense of community.</p>\n\n<p>This sense of togetherness is easier to create at a smaller conference, where a single opening address and keynote speaker can put everyone on the same page. <a href=\"https://www.youtube.com/watch?v=--Ru7cL22rI&amp;list=PLXxEKA_dxoH0\">Martin Kleppmann’s opening at Local First Conf this year</a> is probably the best example of this I’ve seen. An excellent closing speaker (and possibly also a closing party) keeps attendees around and brings everyone together. In contrast, next.app devCon fizzled out at the end of the last day as people went home. It’s clearly a challenge to work out how to achieve this at an event with thousands of attendees.</p>\n\n<p>The basic chat feature in the conference app was disabled during the first day for undisclosed reasons. This made it hard to coordinate evening plans, which I think is such a valuable aspect of conferences. Of course, you can meet new people through mutual acquaintances, but broader coordination makes it easier to connect with people outside your existing circles. All other conferences I’ve been to use Slack or Discord, which work better.</p>\n\n<p>Communication from the conference organisers wasn’t as proactive as I’d hoped, both beforehand as a speaker and during the event. For example, nobody was on stage five minutes after the scheduled start of a talk I’d been looking forward to. My understanding was that a volunteer was assigned to each room at all times. However, there was no sign of a volunteer who could tell us whether the talk would still happen if we waited. I heard that this was not the only talk where this happened. Of course, there are many good reasons a speaker might not be able to make it, but I’d hope there would at least be a way to communicate what was happening. Organising an event of this scale is challenging. I hope they can improve for next year.</p>\n\n<p>I’m keen to attend conferences outside of iOS/Swift development in order to meet people and learn about more diverse topics. I also enjoy catching up with long-time friends from the iOS community. From that ‘one foot out the door’ point of view, next.app devCon was a great fit, and I was delighted to be accepted there as a speaker.</p>\n\n<p>The dates for 2027 have already been announced, and <a href=\"https://www.nextappcon.com/ticket-shop\">tickets are available</a>. I hope the organisers can improve their communication and set up an official Slack or Discord. I will most likely submit a talk again.</p>\n",
      "date_published" : "2026-10-12T09:52:36+0200",
      "id" : "https://douglashill.co/2026/nextapp-devcon/",
      "title" : "next.app devCon 2026",
      "url" : "https://douglashill.co/2026/nextapp-devcon/"
    },
    {
      "content_html" : "<p><a href=\"https://github.com/firebase/firebase-ios-sdk/issues/16728#issuecomment-5884287771\">Exciting morning</a> for <a href=\"https://apps.apple.com/app/id1120099014\">PDF Viewer</a> with Firebase</p>\n\n<p><img src=\"https://douglashill.co/2026/exciting-morning-for-pdf-viewer-with-firebase/screenshot.png\" alt=\"Screenshot of Firebase website showing Crash-free users in last 24 hours with a drop from 100% to 50% at about 3am\" title=\"\" /></p>\n",
      "date_published" : "2026-09-29T11:16:26+0200",
      "id" : "https://douglashill.co/2026/exciting-morning-for-pdf-viewer-with-firebase/",
      "url" : "https://douglashill.co/2026/exciting-morning-for-pdf-viewer-with-firebase/"
    },
    {
      "content_html" : "<p>Next week, I’ll be hosting a <em>Rust for Mobile Developers</em> round table discussion at <a href=\"https://www.nextappcon.com/\">next.app devCon</a>. I hope we can learn from each other! It would be great to hear from people coming from Android, Flutter or other backgrounds. Last minute tickets are available until 4 October.</p>\n\n<p><img src=\"https://douglashill.co/2026/rust-for-mobile-developers-next-app-devcon-next-week/speakercard.jpg\" alt=\"Conference speaker card saying: next.app swiftCon, Douglas Hill, Software Engineer, Nutrient, Rust for Mobile Developers, #nextapp26, OCT 7-9 2026, BERLIN\" title=\"\" /></p>\n",
      "date_published" : "2026-09-29T08:59:11+0200",
      "id" : "https://douglashill.co/2026/rust-for-mobile-developers-next-app-devcon-next-week/",
      "url" : "https://douglashill.co/2026/rust-for-mobile-developers-next-app-devcon-next-week/"
    },
    {
      "content_html" : "<p>Confusing message reply suggestions</p>\n\n<p><img src=\"https://douglashill.co/2026/confusing-message-reply-suggestions/screenshot.jpg\" alt=\"Screenshot in Apple Messages app with reply suggestions “Yes, it’s not too late” and ”No, it’s not too late”\" title=\"\" /></p>\n",
      "date_published" : "2026-09-28T18:24:40+0200",
      "id" : "https://douglashill.co/2026/confusing-message-reply-suggestions/",
      "url" : "https://douglashill.co/2026/confusing-message-reply-suggestions/"
    },
    {
      "content_html" : "<p>Great evening at <a href=\"https://www.meetup.com/nslondon/events/314881943/\">NSLondon</a> yesterday. Thank you to <a href=\"https://flo.health/\">Flo</a> for hosting us, and to our speakers <a href=\"https://uk.linkedin.com/in/harry-davies-412687232\">Harry</a>, <a href=\"https://uk.linkedin.com/in/anastasia-ios\">Anastasia</a> and <a href=\"https://www.life-analytics.co.uk/\">James</a>. I really liked the range of talks.</p>\n\n<p><img src=\"https://douglashill.co/2026/nslondon-at-flo/a.jpg\" alt=\"Photo from Anastasia Petrova’s talk with slide showing feature team vs. platform team\" title=\"\" /></p>\n\n<p><img src=\"https://douglashill.co/2026/nslondon-at-flo/j.jpg\" alt=\"Photo from James Coleman’s talk with mesh face\" title=\"\" /></p>\n",
      "date_published" : "2026-07-24T10:52:20+0100",
      "id" : "https://douglashill.co/2026/nslondon-at-flo/",
      "url" : "https://douglashill.co/2026/nslondon-at-flo/"
    },
    {
      "content_html" : "<p>lol special announcement on the train from Brussels to London now saying their Wi-Fi is “not the best” and to please stream the football using your own 4G/5G connection instead.</p>\n",
      "date_published" : "2026-07-15T21:07:30+02:00",
      "id" : "https://douglashill.co/2026/stream-the-football/",
      "url" : "https://douglashill.co/2026/stream-the-football/"
    },
    {
      "content_html" : "<p>Heading to Berlin today for <a href=\"https://www.localfirstconf.com/\">Local First Conference</a>. It‘s a software conference themed around goals rather than technologies. Very interested to see how this goes and what other people there are building.</p>\n",
      "date_published" : "2026-07-08T08:17:18+02:00",
      "id" : "https://douglashill.co/2026/heading-to-berlin-today-for-local-first-conference/",
      "url" : "https://douglashill.co/2026/heading-to-berlin-today-for-local-first-conference/"
    },
    {
      "content_html" : "<p>I’m seeing a regression in Apple Shortcuts where “Count Characters in …” says “Unable to decode file contents” when passed rich text. Workaround: Add a “Get text from (rich text)” and count with that instead. (I’m on macOS 26.5 but this might have been there for a while.)</p>\n",
      "date_published" : "2026-07-03T13:13:08+02:00",
      "id" : "https://douglashill.co/2026/shortcuts-count-characters-rich-text/",
      "url" : "https://douglashill.co/2026/shortcuts-count-characters-rich-text/"
    },
    {
      "content_html" : "<p>Limited social connection was always a challenge with remote work, but with AI human-to-human communication is further minimised. We exchange messages with people’s robots, or more likely we have our robots talk to their robots. Efficient, but makes me think it would be nice to hang out with people.</p>\n",
      "date_published" : "2026-07-03T12:37:57+02:00",
      "id" : "https://douglashill.co/2026/social-connection-remote-work-ai/",
      "url" : "https://douglashill.co/2026/social-connection-remote-work-ai/"
    }
  ],
  "title" : "Douglas Hill",
  "version" : "https://jsonfeed.org/version/1"
}