Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
SwiftAndoroidを使ってシミュレータでアプリを動かした話
Search
matuyuji
January 28, 2016
Programming
0
650
SwiftAndoroidを使ってシミュレータでアプリを動かした話
SwiftAndoroidでAPKを作って、それをAndroidシミュレータで動かしてみました。
matuyuji
January 28, 2016
Tweet
Share
More Decks by matuyuji
See All by matuyuji
Emacs × Touch Bar
matuyuji
2
1.9k
ARKit + SceneKitでMinesweeperを作ってみた
matuyuji
1
810
Go + QtでiOS アプリ開発
matuyuji
0
420
@_specialized なお話し
matuyuji
0
500
Xcode Souce Code Extensionを使ってみた
matuyuji
0
430
Codebeatを 試してみた
matuyuji
0
790
React Nativeで UIコンポーネントをつくる
matuyuji
0
1.1k
React Nativeを使ってみた
matuyuji
0
1.4k
SwiftでLens
matuyuji
1
1k
Other Decks in Programming
See All in Programming
JPUG勉強会 OSSデータベースの内部構造を理解しよう
oga5
2
230
RAGでハマりがちな"Excelの罠"を、データの構造化で突破する
harumiweb
9
2.5k
The Ralph Wiggum Loop: First Principles of Autonomous Development
sembayui
0
3.7k
Go1.26 go fixをプロダクトに適用して困ったこと
kurakura0916
0
330
PJのドキュメントを全部Git管理にしたら、一番喜んだのはAIだった
nanaism
0
230
maplibre-gl-layers - 地図に移動体たくさん表示したい
kekyo
PRO
0
180
Claude Codeセッション現状確認 2026福岡 / fukuoka-aicoding-00-beacon
monochromegane
4
390
どんと来い、データベース信頼性エンジニアリング / Introduction to DBRE
nnaka2992
1
150
コーディングルールの鮮度を保ちたい / keep-fresh-go-internal-conventions
handlename
0
160
Unity6.3 AudioUpdate
cova8bitdots
0
110
TROCCOで実現するkintone+BigQueryによるオペレーション改善
ssxota
0
140
Fundamentals of Software Engineering In the Age of AI
therealdanvega
0
170
Featured
See All Featured
SEO for Brand Visibility & Recognition
aleyda
0
4.3k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
140
Speed Design
sergeychernyshev
33
1.6k
A designer walks into a library…
pauljervisheath
210
24k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
470
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.7k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
220
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
140
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
99
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.4k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Transcript
4XJGU"OEPSPJEΛͬͯ γϛϡϨʔλͰΞϓϦΛಈ͔ͨ͠ ؔϞόΠϧΞϓϦݚڀձ !NBUVZVKJ
@matuyuji safx-dev.blogspot.jp
4XJGU"OESPJE
None
None
Port of Apple's reference Swift toolchain to Android; doesn't quite
work yet SwiftAndroid / swift forked from apple/swift
https://github.com/SwiftAndroid/swift/wiki/Getting-started
6CVOUV CJU
https://www.vagrantup.com
7BHSBOU
7BHSBOU vagrant init boxcutter/ubuntu1510 vagrant up vagrant ssh
/%,4XJGU"OESPJE curl -LO http://dl.google.com/android/ndk/android-ndk-r10e-linux- x86_64.bin chmod a+x android-ndk-r10e-linux-x86_64.bin ./android-ndk-r10e-linux-x86_64.bin >
/dev/null export ANDROID_NDK_HOME=$HOME/android-ndk-r10e curl -LO https://github.com/SwiftAndroid/swift/releases/download/ swiftandroid-2016-01-06/swift_android_2016-01-06.tar.xz tar xf swift_android_2016-01-06.tar.xz export PATH=$PATH:$HOME/swiftandroid/bin
$PNQJMF $ echo 'print("Hello world!")' > hello.swift $ swiftc-android hello.swift
$ file hello hello: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /system/bin/linker, not stripped
"OESPJE4%, sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get
install -y libncurses5:i386 \ libstdc++6:i386 \ zlib1g:i386 sudo apt-get install -y openjdk-7-jdk curl -LO http://dl.google.com/android/android-sdk_r24.4.1- linux.tgz tar xf android-sdk_r24.4.1-linux.tgz export ANDROID_HOME=$HOME/android-sdk-linux echo y | $ANDROID_HOME/tools/android update sdk \ —-no-ui —-all \ —-filter platform-tools,tools,android-23,build-tools-23.0.2
4XJGU"OESPJE(SBEMF git clone https://github.com/SwiftAndroid/ swift-android-gradle.git cd swift-android-gradle ./gradlew install
4XJGU"OESPJE4BNQMFT git clone https://github.com/SwiftAndroid/ swift-android-samples.git cd swift-android-samples/swifthello ./gradlew build cp
-r build/outputs/apk/ /vagrant
7BHSBOU 1SPWJTJPOJOH
TBGY4XJGU"OESPJE7BHSBOU git clone https://github.com/safx/SwiftAndroid-Vagrant.git cd SwiftAndroid-Vagrant vagrant up ls apk
vagrant halt vagrant destroy
4JNVMBUPS
4JNVMBUFPO.BD curl -LO http://dl.google.com/android/android-sdk_r24.3.4- macosx.zip unzip android-sdk_r24.3.4-macosx.zip cd android-sdk-macosx echo
y | ./tools/android update sdk -a --no-ui —-filter \ android-23,sys-img-armeabi-v7a-android-23,platform-tools ./tools/android list targets ./tools/android create avd -n my_android23 -t 1 ./tools/emulator -avd my_android23 ./platform-tools/adb install swifthello-debug.apk
None
None
4PVSDFT
NBJOTXJGU @_silgen_name("Java_net_zhuoweizhang_swifthello_SwiftHello_return42") public func return42() -> Int { return 42
}
4XJGU)FMMPKBWB public class SwiftHello extends Activity { @Override protected void
onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); loadNativeDependencies(); TextView myText = (TextView) findViewById(R.id.mytext); myText.setText("Result of swift return42() function is " + return42()); } private static void loadNativeDependencies() { System.loadLibrary("c++_shared"); System.loadLibrary("icudata"); System.loadLibrary("icui18n"); System.loadLibrary("icuuc"); // Swift System.loadLibrary("swiftCore"); System.loadLibrary("swiftGlibc"); // Our library System.loadLibrary("swifthello"); } public static native int return42(); }