iOSDC Japan 2020
who it's for
iOS developers, Swift developers, mobile app engineers, ui engineers, app architects, audio engineers, build and release engineers, developer tools engineers
topics
SourceKit-LSP in browser extensions; AVAudioEngine real-time processing; Call Directory Extension management; Catalyst macOS feature integration; Combine-based reactive patterns; SwiftUI migration strategies; Swift to WebAssembly work; GitHub Actions for iOS CI; background downloads with APNs and resumable URLSession; PencilKit note and drawing handling; HomeKit and Homebridge integrations; Java (J2ObjC) to Objective-C porting
| title | author | length |
|---|---|---|
| Using SourceKit LSP to Read Code in the Browser | Kishikawa Katsumi | 42m |
Explains how the Swift language server SourceKit-LSP exposes IDE features (autocomplete, go-to-definition, symbol info) via the Language Server Protocol so… | ||
| Introducing the Open Source AltSwiftUI | Kevin Wong | 19m |
AltSwiftUI is an open-source framework inspired by SwiftUI that targets iOS 11 and provides an API with SwiftUI-like style and syntax so existing SwiftUI… | ||
| Everything You Need to Know About AVAudioEngine Starting Today | meteor | 41m |
An introduction to AVAudioEngine showing how to build custom audio effects by processing AVAudioPCMBuffer data and integrating them into the engine. Covers… | ||
| HomeKit 2020 | Tokoro Yuta | 20m |
Overview of HomeKit basics, the bridge concept, and concrete DIY paths: Homebridge runs on Node.js and exposes otherwise unsupported devices to HomeKit with… | ||
| Deep Dive into Call Directory Extension | Yuta Nagai | 19m |
A company built an in‑app spam filter that writes 300k–400k phone numbers to iOS Call Directory Extension and has run it in production for about five years… | ||
| Using J2ObjC to Reuse Java Assets in iOS Development | Urushi | 20m |
The talk explains using J2ObjC, a compiler that translates Java code to Objective-C, to reuse existing Java assets in iOS development. It compares this… | ||
| The World of Contacts You Don't Know | Hinata Tsuyoshi | 21m |
Explains pitfalls and details of syncing iOS contacts to a server using the iOS Contacts API, covering fields like middle name, suffix, phonetic name, and… | ||
| Automatically Producing Large Newspaper-Style Images with Background Notification | Takagi Go | 20m |
Explains how to implement automatic background downloading of large newspaper page images on iOS, covering iOS background download APIs (their timing and time… | ||
| Taming a Four-Year-Old Detail Screen That Slowed Down Over Time | marty-suzuki | 22m |
An iOS development talk about diagnosing and improving a detail screen whose rendering speed degraded over four years. It covers measuring display performance… | ||
| Tips for Supporting Apple Pencil | Shetomi | 20m |
This session explains practical tips for adding Apple Pencil support to iOS apps using PencilKit, based on the author’s experience building a note app called… | ||
| Implementing macOS-Only Features Missing on iOS with Catalyst | Kakkun | 20m |
Explains how to implement macOS-only features in UIKit apps using Project Catalyst, covering technologies like Xcode’s Catalyst option and macOS-specific UI… | ||
| What We Learned Refactoring an App with 100 People | Yuta Koshizawa | 42m |
A retrospective on a community refactoring event where over 100 people worked on an iOS Reversi (Othello) app during the “Swift Zoomin'” challenge. It explains… | ||
| Automating Daily Builds for 400 App Variants | Kishikawa Katsumi | 43m |
Yappli’s build automation for iOS/Android generates distinct projects from CMS settings and automatically builds, code-signs, and uploads apps to the App Store… | ||
| Too Many Keywords! Surviving the Enterprise iOS World | oishi | 42m |
Overview of enterprise iOS deployment and management technologies (ADEP/DEP/ABM, MDM, Single App Mode, Managed App Configuration, Custom Apps) and how… | ||
| It’s About Time for Combine | shiz | 41m |
Overview of Apple's Combine framework introduced at WWDC 2019, comparing it implicitly to third-party reactive libraries like RxSwift/ReactiveSwift. Covers… | ||
| Introduction to Concurrent Algorithms with Grand Central Dispatch | Takanori Hirobe | 41m |
Using Grand Central Dispatch (GCD) and Swift, the talk explains how to parallelize basic algorithms like sorting and searching to better utilize multi‑core iOS… | ||
| An Introduction to Sansan/Eight iOS Development | Arakawa Seigo | 30m |
This session explains iOS development for Sansan (enterprise business-card app) and Eight (consumer business-card app), describing each product’s iOS team… | ||
| ZOZO’s Challenge: Transforming Fashion with Technology | Imamura Masayuki | 29m |
ZOZO describes how its engineering organization builds and improves large consumer services (ZOZOTOWN and WEAR) while also launching new products that change… | ||
| The Struggles of Migrating to Flutter and What We Gained | Kiriyama Keisuke | 30m |
The talk explains why the Jalan travel app team migrated parts of their iOS/Android codebase to Flutter and what they learned in production. It covers Flutter… | ||
| iOS Reject Chronicles: How to Avoid App Store Rejection | HiromuTsuruta | 19m |
A developer recounts frequent App Store rejections encountered while repeatedly changing and A/B testing an iOS in-app purchase/subscription payment page. The… | ||
| The Headache of Maintaining a Debug Menu | FromAtom | 23m |
The talk examines the maintenance burden of in-app debug menus (server switching, special behaviors, debug displays) and proposes extracting them into a… | ||
| Starting Module Separation from New Feature Development | Ryo Izumi | 20m |
The talk explains adopting a multi-module architecture for an iOS app by extracting newly developed features as separate modules. It names benefits—shorter… | ||
| Building Mouse and Keyboard Support Apps for iPadOS | rokuroku | 20m |
Covers how to add mouse and keyboard support to iPad apps using iPadOS 13.4 APIs, focused on document- and editor-type apps where pointer input matters… | ||
| The Blue Ocean of Machine Learning: Core ML | Shuichi Tsutsumi | 26m |
The talk explains why Core ML is a major opportunity for iOS engineers, arguing that most people only know the CoreML.framework layer while Core ML includes… | ||
| Real-Time Rendering with AVAudioEngine | Yasojima Yuki | 19m |
The talk explains how iOS 13 added AVAudioSinkNode and AVAudioSourceNode to AVAudioEngine so apps can handle raw audio input/output directly without using… | ||
| The Unknown World of Bezier Curves | Kabigon Ono | 15m |
Explains Bézier curves from their definition and history and shows how they appear in icons, animations and posters. Demonstrates handling Bézier curves on iOS… | ||
| Getting Started with WebAR on iOS | ikkou | 20m |
The talk reviews the evolution of WebAR on iOS since ARKit, explaining how iOS 12.2 introduced restrictive motion-sensor limitations and how iOS 13 restored… | ||
| Thinking About Error Architecture Design | Kichiemon | 20m |
Designs error-handling architecture for mobile apps (iOS and Android), focusing on errors from API responses, unexpected user actions, and JSON parsing… | ||
| Step onto the Conference Stage — Standing Up as a Speaker | Freddie | 18m |
A practical guide for turning a blog post or Advent Calendar writeup into an accepted iOS conference talk by crafting a clear one-line takeaway, tying the… | ||
| iPadOSDC: Multiple Windows | Hiron | 39m |
Explains how to add true iPad multiple windows by enabling the Info.plist flag and wiring UIScene support, using UIScene and a SceneDelegate to build windows… | ||
| My Best Practices for iOS CI with GitHub Actions | uhooi! | 40m |
Shows how to set up CI for iOS apps using GitHub Actions with a script-based approach (avoiding Fastlane or CI-specific features where possible). Covers… | ||
| Two Birds with One Stone: Multimodule Architecture and Faster Builds | Saryong Kang | 41m |
Explains practical steps to convert an iOS app into multiple modules with minimal effort, including handling split files so git history remains usable. Shows… | ||
| I’m an iOS Engineer, So I Can Build Android Apps Too… | Akatsuki | 39m |
An iOS engineer explains how iOS developers can start building Android apps by comparing Swift to Kotlin, covering essential Android components (Activity… | ||
| Being mindful of battery usage in iOS apps | Yusuke Arai | 19m |
How to debug and reduce battery drain in iOS apps by using Xcode’s Energy Gauges and Energy Logs to identify problematic behaviors. The session explains… | ||
| Migrating from UIKit to SwiftUI efficiently | Josh | 23m |
A practical plan for migrating an existing UIKit app to SwiftUI, using lessons from an Objective-C-to-Swift migration. Covers planning when full migration… | ||
| Lessons from a failed free trial strategy for subscription growth | nade | 22m |
Explains how Apple’s free-trial and Promotional Offer mechanisms for iOS subscriptions work, and why they can be tricky in real projects. Uses the speaker’s… | ||
| Migrate Swift 4.2 to 5.x | ShoMasegi | 17m |
Migrating from Swift 4.2 to 5.x focuses on concrete changes: use map/flatMap on Result to transform or chain fallible returns; compute collection diffs with… | ||
| Deep Dive into Storyboard | Hinata Tsuyoshi | 20m |
Shows concrete practices for continuing to use UIKit Storyboards while adopting SwiftUI incrementally, including using UIHostingController with IBSegueAction… | ||
| Speeding up UIKit-based app development with Xcode Previews | kenmaz | 20m |
How to speed up UIKit-based iOS app UI development using Xcode Previews introduced in Xcode 11. It explains how Xcode Preview shows view renderings for… | ||
| "You can automate that": The workflows powering note | laprasDrum | 18m |
Practical automation workflows for iOS development tasks supporting the note service are presented, using tools like Firebase App Distribution, fastlane… | ||
| Feature toggles with BuildConfiguration and type-safe definitions | Kobayashi Minami | 19m |
Describes using multiple Build Configurations and Swift type definitions to manage feature differences when building several iOS apps from a shared codebase… | ||
| Everything about iOS keyboards and text input | Yoshimasa Niwa | 38m |
Covers the complexities of text input and on-screen keyboards in iOS UIKit, explaining common problems like the keyboard covering input fields, keyboard frame… | ||
| Continuously measuring app performance | kariad | 40m |
Explains a setup that continuously measures iOS app performance (CPU usage and device temperature) using Instruments. Covers the practical approach of… | ||
| Overcoming XCUITest pain to bring UITests to iOS apps | Sato Goshi | 41m |
This session explains how to introduce automated UI (E2E) tests for iOS apps using Apple’s XCUITest framework to reduce manual-testing cost as a product grows… | ||
| Why "The Composable Architecture" Matters for iOS App Development | Imajo Yoshinori | 35m |
Introduces The Composable Architecture (swift-composable-architecture) for iOS app development and demonstrates concrete Swift code: a simple counter, two… | ||
| Micro Modular Architecture with Bazel | Ryo Aoyama | 39m |
Bazel is used as the build system with Bazel remote cache and the Apple/Swift rules to build a micro‑modular iOS app split into hundreds of small modules… | ||
| How Cookpad reinvented something completely new | Fujisaka Yushi | 23m |
Cookpad describes building Cookpad Mart, a fresh-food e-commerce platform launched in 2018 to reshape how people plan meals, shop, and cook. The talk explains… | ||
| freee's mobile tech supporting small businesses | Tsubaki | 24m |
This talk introduces freee’s mobile engineering for its small-business accounting app and describes cross-platform challenges on iOS and Android. It explains… | ||
| The Townwork iOS app over the past few years | Ishii Jun, Gen Koshu | 20m |
Engineers describe challenges maintaining the large TownWork iOS app, covering constraints of developing for a large-scale service. They detail concrete… | ||
| Deep dive into the UIColor family | Shimotori | 21m |
Explores the internal structure of UIColor in iOS, revealing it actually has around 18 private subclasses rather than being a simple container for color… | ||
| Reconsidering the relationship between web and native apps | kiwi | 20m |
The talk examines when to build native iOS apps versus web-based experiences, reviewing how advances in JavaScript, browsers, and APIs (e.g. Apple Pay) have… | ||
| Manipulating organizational dynamics to improve app development processes | Masato Ishigaki | 21m |
The talk examines how organizational structure and team interactions affect iOS app development, covering coordination with backend APIs and design teams. It… | ||
| Getting started with static analysis in Swift | Matsuji | 21m |
Introduces building a static analysis tool for Swift using SwiftSyntax. Explains how SwiftLint is not the only option, compares static-analysis benefits seen… | ||
| How CGAffineTransform actually works — Swift engineer’s guide | Hoshino Eru | 20m |
Explains how CGAffineTransform works in UIKit for Swift engineers, detailing how scale, rotation and other transform initializers map to the matrix components… | ||
| Practical uses of code generation at Mitene | Sato Shunsuke | 21m |
This talk explains how the iOS team at Mitene adopted code generation using Sourcery and Stencil to automate parts of their app. It covers concrete… | ||
| Do iOS apps hold "emotion"? AI and app experience | Wagatsuma Yukinaga | 25m |
The talk examines recent advances in on-device AI (object recognition, natural language processing) for iOS and asks whether apps can ever hold human-like… | ||
| App architecture after introducing SwiftUI | Yu Tawata | 21m |
This talk describes adopting SwiftUI and Combine for a newly developed iOS app, explains deficiencies encountered in SwiftUI alone, and presents a hybrid… | ||
| Using Firebase Dynamic Links to engage not just new users but existing ones | Nakagawa Yasuo | 20m |
This talk explains how to use Firebase Dynamic Links to direct users who already have the app to a new-feature screen, while sending users without the app to… | ||
| The Journey of Swift's WebAssembly Support | kateinoigakukun | 20m |
The talk describes how SwiftWasm enables compiling Swift to WebAssembly by using a patched Swift calling convention in LLVM and a SIL-level cross-module… | ||
| Behind the scenes of CTI services — integrating with physical devices | Asano Hiroaki | 38m |
A restaurant reservation app added a CTI service that connects store landlines to an iOS app using a dedicated physical hub device called CTI-BOX. The talk… | ||
| Functional iOS Architecture in the SwiftUI Era | Inami Yasuhiro | 40m |
A follow-up to a 2016 design showing a homegrown Harvest-style library that pairs SwiftUI and Combine to build a functional iOS architecture. It explains using… | ||
| Synchronized iPhones, Again! | TachibanaKaoru | 37m |
Claims a serverless, auto-grouping synchronization for 20–30 iPhones using MultipeerConnectivity instead of BLE (BLE limits to ~4–5 peers); implements leader… | ||
| Generating images on iOS devices using GANs | Daisuke | 40m |
The talk explains how to run GAN-based image generation models on iOS by converting Python-trained models into Core ML format. It covers specific architectures… | ||
| Getting started with AR app development | noppe | 19m |
Introduces Google’s open-source MediaPipe framework for building ML pipelines (https://github.com/google/mediapipe) and shows how to use it to estimate text… | ||
| The Long Road to | hak | 01h 01m |
A 60-minute iOSDC Japan 2020 session tracing the 13-year evolution of Apple’s SoCs that led to the macOS transition to Apple Silicon in 2020. It covers the… | ||
| Audio Editing You'll Want to Implement | Yosei | 20m |
Practical techniques for audio editing on iOS used in the Radiotalk app: how to obtain audio waveforms during recording (using AVAudioRecorder and… | ||
| Let's Build a Computation-Graph JIT Compiler in C++ | Yuichi Yoshida | 20m |
Shows how to implement a computation graph in C++ and use LLVM’s JIT to generate and execute binary code at runtime. Covers practical LLVM internals by walking… | ||
| Will More Test Code Really Reduce Bugs…? | ahirustarrr | 20m |
This talk examines increasing automated test coverage in an iOS product from almost 0% to 60.3% over about a year and evaluates whether that change actually… | ||
| nothing matches | ||