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
220
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
57
AsyncStreamでマルチブロードキャストを実装する
1mash0
1
290
SwiftData: Dive into inheritance and schema migration - Swift愛好会スピンオフ WWDC25セッション要約会
1mash0
0
500
SwiftDataのカスタムデータストアを試してみた
1mash0
0
370
Other Decks in Technology
See All in Technology
ブラウザとサーバーから考えるAI時代のフロントエンド監視
shogo4131
3
650
二歩目のフロントエンド・ウェブアクセシビリティ
camiha
2
250
FactoryBotアンチパターン / factory_bot anti-patterns
toshimaru
0
140
実践! SRE × AI - ABEMA における AIOps -
tetsuya28
7
2.6k
プロダクト価値を、 チームが使える判断軸に変える
vivion
0
140
パッチ更新でterraform initが落ちた日
grimoh
1
100
Cognition AI Japan - ウェビナー2_テストQA_運用監視
cogakira
0
120
DWH の限界突破! AI エージェント向け爆速リアルタイムデータ基盤 ClickHouse
jozono
1
330
Execution in the Kingdom of Agents: Reflections on Abstraction and Complexity
bcantrill
0
900
AIは爆速なのに、私が詰まっていた話 ― 音声入力と鳴くマスコットでボトルネックを削る
yama3133
0
570
脆弱性診断って、何をしているの? 〜弱点を見つけて、会社の改善につなげるまで〜
keeg
0
770
分析AIエージェントを育てる、動く環境を育てる
codatum
1
700
Featured
See All Featured
The Language of Interfaces
destraynor
162
27k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Code Review Best Practice
trishagee
74
20k
We Are The Robots
honzajavorek
0
390
A Tale of Four Properties
chriscoyier
163
24k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
260
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
Amusing Abliteration
ianozsvald
1
330
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
590
Making the Leap to Tech Lead
cromwellryan
135
10k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
930
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
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