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
Java Binding Tips and Tricks 2017
Search
Atsushi Eno
September 21, 2017
Programming
0
410
Java Binding Tips and Tricks 2017
monkeyfest.io
Atsushi Eno
September 21, 2017
Tweet
Share
More Decks by Atsushi Eno
See All by Atsushi Eno
Some Music Libraries for Kotlin (with some .NET -> Kotlin migration stories)
atsushieno
0
140
Building App Extensions equivalents on Android (maybe?)
atsushieno
1
340
Taking trends in music app development into the future mobile ecosystem
atsushieno
0
290
DTM entry level hands-on
atsushieno
0
410
[COSCUP2024] Catching up Trends in Audio App Development
atsushieno
0
820
Building Kotlin Multiplatform Libraries in 2024
atsushieno
0
4k
Kotlin Multiplatformで MIDI 1.0/2.0 ライブラリを作っている話
atsushieno
1
770
building_audio_plugin_ecosystem_on_Android.pdf
atsushieno
0
1.2k
get updated to the latest realtime audio processings knowledge base (2023) (再履修: 2023年までの リアルタイムオーディオ処理)
atsushieno
1
1.2k
Other Decks in Programming
See All in Programming
生成AIコーディングとの向き合い方、AIと共創するという考え方 / How to deal with generative AI coding and the concept of co-creating with AI
seike460
PRO
1
330
PHPで始める振る舞い駆動開発(Behaviour-Driven Development)
ohmori_yusuke
2
190
ruby.wasmで多人数リアルタイム通信ゲームを作ろう
lnit
2
260
『自分のデータだけ見せたい!』を叶える──Laravel × Casbin で複雑権限をスッキリ解きほぐす 25 分
akitotsukahara
1
540
来たるべき 8.0 に備えて React 19 新機能と React Router 固有機能の取捨選択とすり合わせを考える
oukayuka
2
850
GoのGenericsによるslice操作との付き合い方
syumai
3
690
地方に住むエンジニアの残酷な現実とキャリア論
ichimichi
5
1.3k
Select API from Kotlin Coroutine
jmatsu
1
190
Haskell でアルゴリズムを抽象化する / 関数型言語で競技プログラミング
naoya
17
4.9k
Team topologies and the microservice architecture: a synergistic relationship
cer
PRO
0
1k
FormFlow - Build Stunning Multistep Forms
yceruto
1
190
AIエージェントはこう育てる - GitHub Copilot Agentとチームの共進化サイクル
koboriakira
0
380
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
36
2.8k
Embracing the Ebb and Flow
colly
86
4.7k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
Optimizing for Happiness
mojombo
379
70k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.6k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Speed Design
sergeychernyshev
32
1k
Stop Working from a Prison Cell
hatefulcrawdad
270
20k
Fireside Chat
paigeccino
37
3.5k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
181
53k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Transcript
Java Binding Tips and Tricks 2017
Agenda ▪ ▪ ▪
Java Bindings Libraries in Xamarin.Android Ecosystem Xamarin.Android (Mono.Android.dll) other Java
Libs Framework Libraries (System*) OpenTK other .NET Libs (PCL, netstandard, XA libs) Android Framework & Java Framework Subset
What are Java Bindings? ▪ ▪ ▪
Why use Java Bindings? ▪ ▫ ▪ ▫ ▫
Which are Java Bindings, for example? ▪ ▪ ▪ ▪
github:xamarin/XamarinComponents
Discover Java Android Experience ▪ github:wasabeef/awesome-android-ui ▪ ▪
How Java Bindings work ▪ ▪ JNI ▪ ▪
How Java Bindings work ▪ ▪ ▫ ▫ ▪ ▫
▪ new
Project Structure Tips and Tricks
Java Binding Project: general steps
How Java Bindings are Built .jar api.xml *.cs *.dll *.cs
*.cs GenerateBindings CSCompile Metadata.xml additional *.cs reference *.dll reference *.dll ExportJarToXml javadoc .jar
Migrate to new Class parser (if old) ▪ ▪ ▪
▫ ▪ ▫ ▫ new
Jar/Aar and Build Actions ▪ ▫ ▫
Xamarin.Build.Download package ▪ ▫ ▫ ▪ ▪ ▫ new
▪ Library Dependency Tips b.jar class C2 extends a.C1 {
... } ABinding.dll public class C1 { ... } a.jar api.xml BBinding.dll public class C2 : A.C1 { ...} a.jar class C1 { ... } b.jar
Library Dependency Tips ▪ ▫ ▫ ▪ ▫ ▫
Give meaningful Parameter Names ▪ ▫ ▫ ▪ ▫ new
Importing API Documentation ▪ ▫
Metadata Fixup Tips and Tricks
▪ ▪ ▪ ▪ Build Bindings without Metadata fixup
Metadata fixup: why is it required? ▪ ▫ ▫ ▪
▫ ▫
▪ ▪ ▫ ▫ ▫ ▪ ▪ [Java Bindings Metadata]
Metadata.xml
Find the causes of unexpected results ▪ ▪ ▫
Easiest build fix ▪ ▫ ▪
Individual Metadata fixup Tips ▪ ▪ ▪ ▪ ▪ ▪
▪ ▪ ▪ Troubleshooting Bindings
Namespace / Type Name conflicts
Fix Inconsistent Member Access Java C#
Dealing with Variants and Generics Java C#
Dealing with Variants and Generics Java C#
Dealing with Variants and Generics
Name Collision on EventArgs Java C#
Name Collision on EventArgs
Beautifying Managed API ▪ ▫ ▫ ▫ ▪ ▫ →
▪ ▫ →
Knowing Limitations...
Future Topics
Java8 Default Interface Methods ▪ ▫ ▪ ▫ ▫ ▪
▫
Java8 Default Interface Methods ▪ ▪ ▪
Android Architecture Components ▪ ▫ ▪ ▫ ▫
Android Architecture Components ▪ ▫ ▫ ▪ ▫ ▫
Thanks ▪ ▫ ▫ ▫ ▫ ▫