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
Android Studio Plugin Development
Search
Realm
April 18, 2017
Technology
0
7.5k
Android Studio Plugin Development
Android Studio Plugin
Droid Knights, Seoul, 2017
Youngho Cha
Realm
April 18, 2017
Tweet
Share
More Decks by Realm
See All by Realm
WWDC 2017 Review
realm
0
1.9k
Xcode shortcuts
realm
0
4.6k
Self Branding with GitHub
realm
0
4.2k
Realm Mobile Platform overview and demo
realm
0
1.9k
Realm advanced topics and demo
realm
0
1.9k
Realm introduction Seoul meetup 10
realm
0
2k
Stuart Hall: How I got 2.3 Million App Downloads
realm
0
1.7k
James Majors: What the Swiftly Func?
realm
1
4.1k
Simina Pasat: Continuous everything for iOS apps
realm
0
560
Other Decks in Technology
See All in Technology
Microsoft Cloudで開発ライフサイクルを保護する
kkamegawa
0
140
アクセシビリティを考慮したUI/CSSフレームワーク・ライブラリ選定
yajihum
0
170
〜小さく始めて大きく育てる〜データ分析基盤の開発から活用まで
kniino
0
2k
疲弊しない!AWSセキュリティ統制の考え方 #devio_osakaday1
masahirokawahara
6
5.9k
HEXA OSINT CTF V3 作戦会議
meow_noisy
0
110
Google Cloud の AI を支える裏側のインフラを垣間見る!
maroon1st
0
200
開発生産性向上サービスを作るFindyが自分たちで開発生産性を爆上げした組織づくりの歩み / Findy's path to boosting its own development productivity 2024-04-17
ma3tk
3
340
0→1開発における技術選定において一番大切なこと
bicstone
1
330
4年前、あるじゃん老害エンジニアLT合戦に登壇、米国西海岸コンピュータ歴史博物館体験記の続編
toshi_atsumi
0
200
普段有償でサポート業務をしているCSAが技術知見を無料で公開する理由
07jp27
1
640
[2024年3月版] Databricksのシステムアーキテクチャ
databricksjapan
8
1.9k
Reducing Cross-Zone Egress at Spotify with Custom gRPC Load Balancing Recap
koh_naga
0
130
Featured
See All Featured
For a Future-Friendly Web
brad_frost
171
8.9k
Building a Modern Day E-commerce SEO Strategy
aleyda
16
6.4k
The MySQL Ecosystem @ GitHub 2015
samlambert
242
12k
Building Your Own Lightsaber
phodgson
98
5.7k
The Invisible Customer
myddelton
114
12k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
658
120k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
352
28k
What’s in a name? Adding method to the madness
productmarketing
PRO
15
2.6k
No one is an island. Learnings from fostering a developers community.
thoeni
14
2.1k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
104
6.6k
Git: the NoSQL Database
bkeepers
PRO
422
63k
5 minutes of I Can Smell Your CMS
philhawksworth
199
19k
Transcript
(@ganachoco)
I've got a dream Source: disney.com
.
...
None
None
idegen.sh
Build
None
API References Documentation
IntelliJ IDEA Community Edition Android Studio
API
API
Plugin Development Setup
build.gradle
build.gradle
build.gradle
plugin.xml
Entry Point • Action ◦ Menu ◦ Toolbar • Component
◦ Application ◦ Project ◦ Module
plugin.xml (Actions)
Action
plugin.xml (Components)
Component Level ApplicationComponent ProjectComponent ModuleComponent
Application Component IDE Launched IDE Exited initComponent() disposeComponent()
Project Component IDE Launched IDE Exited projectOpened() projectClosed()
Module Component IDE Launched IDE Exited moduleAdded() Open Project Close
Project
Messaging Infrastructure
Topic • ProjectTopics ◦ PROJECT_ROOTS ▪ ModuleRootListener ◦ MODULES ▪
ModuleListener • VirtualFileManager ◦ VFS_CHANGES ▪ BulkFileListener • Ӓ৻... ◦ public static final Topic ਵ۽ Ѩ࢝
Example: ModuleListener
Example: ModuleListener
plugin.xml (Services)
ServiceManager ServiceManager applicationService projectService ModuleServiceManager moduleService
Service
User Interface Based Swing Component Popup Notification ToolWindow GUI Builder
GUI Builder
GUI Builder
ToolWindow
ToolWindow
And many others...
publish
publish
new upload
plugin update
Conclusion • Use the Source! ◦ Platform Sources ◦ Other
plugins sources