Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Minecraft JavaのMODをSwiftで作る
Search
1mash0
September 13, 2026
Technology
110
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Minecraft JavaのMODをSwiftで作る
iOSDC Japan 2026
1mash0
September 13, 2026
More Decks by 1mash0
See All by 1mash0
What's new in SwiftData + SwiftData Group Lab Recap
1mash0
0
49
AsyncStreamでマルチブロードキャストを実装する
1mash0
1
280
SwiftData: Dive into inheritance and schema migration - Swift愛好会スピンオフ WWDC25セッション要約会
1mash0
0
490
SwiftDataのカスタムデータストアを試してみた
1mash0
0
360
Other Decks in Technology
See All in Technology
Claude Code本って、 読む必要あるの?
oikon48
2
430
消えない 動かない 効かない
yama3133
1
120
コーディングエージェントでM5Stack系の開発を少し試した時の話 / M5 Japan Tour 2026 Autumn 東京
you
PRO
0
180
10分で知る最近のOmarchy
komagata
0
270
AI時代、データエンジニアが一番おもろい
genshun9
0
280
omasushiというライブラリを作った
polidog
PRO
0
210
アプリをもっと"iOSアプリっぽく"する小さな工夫 / Small Touches That Make Your App Feel More Like an iOS App
matsuji
1
680
[2026-09-11]SREは誰のもの?運用エンジニアが始める 「SRE領域への越境」とチームの進化の軌跡 〜Road to NEXT CRE
tosite
0
170
生成AIのテナント制御とシャドーMCP対策 | AIを"止めずに"、情報を守る
yukun
0
160
GoCon2026 - Open Source, Open World
sanposhiho
4
3.4k
NW運用でNWトポロジ可視化ツールに期待すること/shumoku-meetup1
corestate55
2
120
TinyGo 開発サイクルを高速化する:Go で作るエミュレータ入門
zozotech
PRO
1
660
Featured
See All Featured
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6.2k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
Building Applications with DynamoDB
mza
96
7.2k
RailsConf 2023
tenderlove
30
1.5k
Music & Morning Musume
bryan
47
7.4k
Google's AI Overviews - The New Search
badams
0
1.6k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3k
Git: the NoSQL Database
bkeepers
PRO
432
67k
Amusing Abliteration
ianozsvald
1
290
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.1k
Transcript
Minecraft JavaのMODを Swiftで作る @1mash0̲ iOSDC Japan 2026 1
自己紹介 いますえ / 今末翔太 @1mash0̲ • 某SES企業所属 • iOS /
Flutterエンジニア • Minecraftを一番遊んでたのは Beta 1.8〜正式版1.8 2
宣伝 3
Saitama.swift #1 やります! • Saitama.swiftのcompass • 日時 • 場所 •
池袋、新宿などから何分とかの説明 4
本編 5
注意点 • 本発表および紹介するMODは、Minecraftの公式コンテンツではありませ ん。 Mojang および Microsoft から承認を受けておらず、関連性もありません。 https://www.minecraft.net/ja-jp/usage-guidelines https://www.minecraft.net/ja-jp/eula
• 今回作成したMODは、配布を目的としていません。 • 本発表で紹介する実装方法は、標準的なMOD開発方法ではありません。 6
きっかけ 7
WWDC25: Explore Swift and Java interoperability WWDC26: What's new in
Swift 8
swift-javaを使えばSwiftで MinecraftのMOD(の大部分)を作れるのでは WWDC25: Explore Swift and Java interoperability WWDC26: What's
new in Swift 9
本題 10
実際に作ってみた 環境 • Swift 6.3 • JDK 25 • Minecraft
Java Edition 26.1.2 • Fabric Loader 0.19.3 / Fabric API 0.155.2 • swift-java • Java → Swift:jextract • Swift → Java:wrap-java/SwiftJavaマクロ 11
実際に作ってみた 実装の構成 JavaからSwift SwiftからJava fabric.mod.json FabricHudWrappers.swift “entrypoints”: { “main”: [
"com.example.swift. SwiftJavaModFabric::initializeMod” ], … } @JavaInterface(“net.fabricmc.fabric.api.client.rendering.v1.hu d.HudElementRegistry”) struct FabricHudElementRegistry {} ↓ jextract生成コードを経由 extension JavaClass<FabricHudElementRegistry> { @JavaStaticMethod func addLast( _ id: Identifier?, _ element: FabricHudElement? ) } ↓ SwiftJavaModFabric.swift public func initializeMod() { ModItem.initialize() registerItemUseCallback() registerCreativeTabCallback() } SwiftJavaマクロでJava APIを宣言 SwiftJavaModFabric.swift let registryClass = try! JavaClass<FabricHudElementRegistry>() registryClass.addLast(hudId, element) 12
実際に作ってみた 13
実際に作ってみた ClockHud.swift import Foundation let time = Date.now.formatted( Date.FormatStyle() .hour(.defaultDigits(amPM:
.omitted)) .minute(.twoDigits) .second(.twoDigits) ) let padding: Int32 = 8 let x = graphics.guiWidth() - font.width(time) padding let y: Int32 = 8 graphics.text( font, time, x, y, -1, true ) 14
まとめ • MODの初期化、アイテム、HUDをSwiftで実装 • MOD固有の手書きJavaコードはゼロ • ほぼ全編でAIに相談(チャッピーいつもありがとう) 15
参考資料 • https://github.com/swiftlang/swift-java • https://developer.apple.com/videos/play/wwdc2025/307/ • https://developer.apple.com/videos/play/wwdc2026/262/ • https://docs.fabricmc.net/ •
https://github.com/FabricMC/fabric-loader/blob/0.19.3/src/main/java/net/fabricmc/loader/ impl/util/DefaultLanguageAdapter.java • https://github.com/FabricMC/fabric-example-mod • https://www.minecraft.net/ja-jp/usage-guidelines • https://www.minecraft.net/ja-jp/eula 16
進捗達成の動画 17