I’ve been apartment hunting here in the Tokyo-area with my girlfriend. We’ve been sending links to various rental property listings back and forth in LINE (messaging app) and emailing with brokers. In a chat interface, it was hard keeping up with the status of each of the properties we’d seen, we wanted to see, we’d inquired about, etc. Classic project management problem.| twocentstudios.com
Hi, I'm Chris Trott. I'm an Apple platforms developer. Learn more about me, check out my apps and projects, or read my technical writing.| twocentstudios.com
I started my Apple platforms development journey a year before Grand Central Dispatch was released with iOS 4. I’ve lived through codebase migrations to NSOperation. Then through the slew of FRP frameworks (of which I consider a concurrency solution): ReactiveCocoa, ReactiveSwift, RxSwift, and finally Combine. My strategy for learning all these paradigms was best described as osmosis while encountering and solving real problems in codebases. Of course, you have to spend time setting breakpo...| twocentstudios
In my previous post about Technicolor I gave an overview of my hybrid chat app & social network for watching TV shows with friends asynchronously.| twocentstudios.com
Although it’s still in beta, I think it’s a good time to reintroduce my web app side project called Technicolor. Technicolor beta app icon Technicolor is a chat app tailored for watching TV shows with friends asynchronously. I’ve found it to be a great way to stay in touch with friends in other cities/states/countries. The current version of Technicolor is a native SwiftUI app available on iOS 17.4+ devices and macOS. Technicolor app overview showing dashboard, room interface (redacted)...| twocentstudios
Claude Code works best as a multi-shot agent, iterating on a task by making changes and checking whether its attempts match the target.| twocentstudios.com
This post is a guide for getting a Swift Vapor server-side app up and running on Fly.io with SQLite as the database provider. The target audience is Swift developers who are inexperienced with servers and deployment. I’m assuming you’ve already chosen Vapor, SQL, and Fly.io as your tools of choice and therefore will not discuss any of their tradeoffs. The below setup using SQLite avoids the operational complexity of maintaining a full Postgres server. Especially as a beginner that does no...| twocentstudios
I migrated my Swift Vapor app from Fly.io’s regular Postgres to their new Managed Postgres service. As could be expected, this did not go smoothly, so below is a quick guide and the associated debugging story.| twocentstudios.com
Last week, I rewrote my iOS app Vinylogue to Swift and SwiftUI with the help of Claude Code. I originally created Vinylogue back in 2013 targeting iOS 6. Recently, I’ve been wanting to try out Claude Code, and I decided updating Vinylogue would be a good test project for it.| twocentstudios.com
My latest app is called Eki Bright or 駅ブライト in Japanese.| twocentstudios.com
In my iOS apps Eki Live and Eki Bright I’ve been using read-only SQLite databases shipped in the app bundle. It’s mostly worked fine so far (disregarding the App Group Containers problem). My workflow involves: Running a Swift script from a separate target that aggregates several json files into an sqlite file. Copying the sqlite file to the app target; it gets included in the app bundle. Opening the sqlite file as read-only on app launch. // Opening an sqlite database from the bundle usi...| twocentstudios
I’m excited to announce my latest app Eki Like or 駅ライブ in Japanese. App icon for Eki Live v1.0 Tokyo-area residents can download it on the App Store. Eki Live tracks the train you’re currently on and shows the current/next station on your route. The main interface is a Live Activity: Live Activity on the lock screen and Dynamic Island But there’s also a more detailed view inside the app: Home screen of Eki Live (English version) The unique point of Eki Live is that it’s design...| twocentstudios
It’s been about 6 weeks since the last train tracker devlog.| twocentstudios.com
Last month, I took a step back from development of my train timetables iOS app Eki Bright to think about the app in a broader context. I’ve iterated on Version 1 on and off for nearly a year, with use cases emerging out of a basic feature set and evolving with my own daily usage of the app.| twocentstudios.com
When I set out making the first prototypes of Eki Bright, my train timetables iOS app for the Tokyo metropolitan area, I had no intentions of tackling routing. In fact, that was one of the selling points; the lack of routing, like lack of maps, made it visually and conceptually simpler for solving the problem of getting the next train departure time at any particular station.| twocentstudios.com