SlideShare a Scribd company logo
Munchkin
Jaewe Heo · !iiid! · @importre
Jan 27, 2016
About me
• !iiid!
• @importre
• Kotlin
• Electron
Goal
• Electron과 react-photonkit을 이용하여 앱 같은 앱 만들기
Agenda
• photonkit
• react-photonkit
• munchkin
photonkit
Munchkin
react-photonkit
Munchkin
History
• Oct 15, 2015
• 첫 커밋
• Oct 29, 2015
• Electron Korea Meetup #1 에서 소심하게 프로젝트 공개
• @ragingwind(Jimmy Moon)님과 협업 시작
• Nov 3, 2015
• v0.4.1 릴리즈
Todo
• coffescript -> es2015
• webpack -> ???
• improvement of tests
• issues
Munchkin 🐈
Android Finder
• 한 것
• 단말기 연결 목록 실시간 업데이트
• 폴더 이동 가능
• 텍스트 뷰어
• 할 것
• …
Munchkin
Demo 🔬
Skeleton 💀
app.jsx
<Window>
<Header subj={subj} />
<Content>
<PaneGroup>
<Sidebar />
<Contents subj={subj} />
<Viewer subj={subj} />
</PaneGroup>
</Content>
<Footer />
</Window>
Skeleton
<Window>
<Header subj={subj} />
<Content>
<PaneGroup>
<Sidebar />
<Contents subj={subj} />
<Viewer subj={subj} />
</PaneGroup>
</Content>
<Footer />
</Window>
Skeleton
<Window>
<Header subj={subj} />
<Content>
<PaneGroup>
<Sidebar />
<Contents subj={subj} />
<Viewer subj={subj} />
</PaneGroup>
</Content>
<Footer />
</Window>
Skeleton
<Window>
<Header subj={subj} />
<Content>
<PaneGroup>
<Sidebar />
<Contents subj={subj} />
<Viewer subj={subj} />
</PaneGroup>
</Content>
<Footer />
</Window>
Skeleton
<Window>
<Header subj={subj} />
<Content>
<PaneGroup>
<Sidebar />
<Contents subj={subj} />
<Viewer subj={subj} />
</PaneGroup>
</Content>
<Footer />
</Window>
Skeleton
<Window>
<Header subj={subj} />
<Content>
<PaneGroup>
<Sidebar />
<Contents subj={subj} />
<Viewer subj={subj} />
</PaneGroup>
</Content>
<Footer />
</Window>
Skeleton
<Window>
<Header subj={subj} />
<Content>
<PaneGroup>
<Sidebar />
<Contents subj={subj} />
<Viewer subj={subj} />
</PaneGroup>
</Content>
<Footer />
</Window>
Skeleton
<Window>
<Header subj={subj} />
<Content>
<PaneGroup>
<Sidebar />
<Contents subj={subj} />
<Viewer subj={subj} />
</PaneGroup>
</Content>
<Footer />
</Window>
Skeleton
<Window>
<Header subj={subj} />
<Content>
<PaneGroup>
<Sidebar />
<Contents subj={subj} />
<Viewer subj={subj} />
</PaneGroup>
</Content>
<Footer />
</Window>
Details
• import Rx from ‘rxjs/Rx’;
• import electron from ‘electron’;
• electron.ipcMain;
• electron.ipcRenderer;
IPC
ADB
ipcRenderer
// In renderer process (web page).
const ipcRenderer = require('electron').ipcRenderer;
componentDidMount() {
ipcRenderer.on('on-add-device', (event, arg) => {
var devices = this.state.devices;
devices[arg.id] = arg;
this.setState({ devices: devices });
});
ipcRenderer.on('on-change-device', (event, arg) => {
var devices = this.state.devices;
devices[arg.id] = arg;
this.setState({ devices: devices });
});
ipcRenderer.on('on-remove-device', (event, arg) => {
var devices = this.state.devices;
delete devices[arg.id];
this.setState({ devices: devices });
});
ipcRenderer.send('check-devices');
}
ipcMain
// In main process.
const ipcMain = require('electron').ipcMain;
ipcMain.on('check-devices', function (event, arg) {
const devices = client.trackDevices();
Rx.Observable.fromPromise(devices)
.subscribe(tracker => {
tracker.on('add', device => {
event.sender.send('on-add-device', device);
});
tracker.on('change', device => {
event.sender.send('on-change-device', device);
});
tracker.on('remove', device => {
event.sender.send('on-remove-device', device);
});
}, error => {
console.log(error);
});
});
IPC
ADB
Load data
Subject
Open/close ViewerNavigation
Contents
Subject
Update viewer
Send data Viewer
Troubleshooting
Cannot resolve module 'electron'
ERROR in ./app/header.jsx
Module not found: Error: Cannot resolve module 'electron' in /path/to/app
@ ./app/header.jsx 15:16-35
ERROR in ./app/sidebar.jsx
Module not found: Error: Cannot resolve module 'electron' in /path/to/app
@ ./app/sidebar.jsx 15:16-35
…
…
[webpack] config
var path = require('path');
var webpack = require('webpack');
module.exports = {
entry: …,
output: …,
target: 'electron',
module: {
loaders: [
…
…
webpack… 싫음
Conclusion
Conclusion
• 정말 앱 같이 보이긴 함
• photon에 의존적이어서 콤포넌트가 부족함
• 웹 개발자가 아니어도(Native 개발자?) 도전해볼만 함
¯_(ツ)_/¯
Munchkin
Thank you 🌷

More Related Content

PPTX
ProtoPie with Electron
Scotty Kim
 
PPTX
JavaScript innovaties: ECMAScript 6 & 7
Rick Beerendonk
 
PDF
React.js and Flux in details
Artyom Trityak
 
PDF
React.js - and how it changed our thinking about UI
Marcin Grzywaczewski
 
PDF
Vue.jsをはじめる
Reo Mori
 
PDF
React.js for Back-End developers
Artyom Trityak
 
PPTX
ReactJS.NET - Fast and Scalable Single Page Applications
Rick Beerendonk
 
PPTX
React for .net developers
macsdickinson
 
ProtoPie with Electron
Scotty Kim
 
JavaScript innovaties: ECMAScript 6 & 7
Rick Beerendonk
 
React.js and Flux in details
Artyom Trityak
 
React.js - and how it changed our thinking about UI
Marcin Grzywaczewski
 
Vue.jsをはじめる
Reo Mori
 
React.js for Back-End developers
Artyom Trityak
 
ReactJS.NET - Fast and Scalable Single Page Applications
Rick Beerendonk
 
React for .net developers
macsdickinson
 

What's hot (20)

PDF
Azure Container Apps
ninefyi
 
PDF
Node Web Development 2nd Edition: Chapter1 About Node
Rick Chang
 
PDF
Building Cross Platform Apps with Electron
Chris Ward
 
PPT
Pre-rendering single page app
Michał Koźmiński
 
PDF
Angular js vs. Facebook react
Keyup
 
PPTX
Angular CLI : HelloWorld
nikspatel007
 
PDF
Native Desktop App with Node.js Webkit (HTML, CSS & Javascript)
Eddie Lau
 
PPTX
Codestrong 2012 breakout session building your own custom cloud services
Axway Appcelerator
 
PDF
ReactJS vs AngularJS - Head to Head comparison
500Tech
 
PDF
Zepto and the rise of the JavaScript Micro-Frameworks
Thomas Fuchs
 
PDF
Stripe con 2021 UI stack
MaximeRainville1
 
ODP
Faster on Rails
David Paluy
 
PPTX
Electron
Jens Siebert
 
PPTX
Building API in the cloud using Azure Functions
Aleksandar Bozinovski
 
PPTX
Nicole Neumann - Let’s Monitor All The Things
Nicole Neumann
 
PDF
Angular 2 vs React
Iran Reyes Fleitas
 
PDF
Breaking the Server-Client Divide with Node.js and React
Dejan Glozic
 
PPTX
Meteor meetup
David Brear
 
PDF
Developing, building, testing and deploying react native apps
Leena N
 
PDF
React.js in real world apps.
Emanuele DelBono
 
Azure Container Apps
ninefyi
 
Node Web Development 2nd Edition: Chapter1 About Node
Rick Chang
 
Building Cross Platform Apps with Electron
Chris Ward
 
Pre-rendering single page app
Michał Koźmiński
 
Angular js vs. Facebook react
Keyup
 
Angular CLI : HelloWorld
nikspatel007
 
Native Desktop App with Node.js Webkit (HTML, CSS & Javascript)
Eddie Lau
 
Codestrong 2012 breakout session building your own custom cloud services
Axway Appcelerator
 
ReactJS vs AngularJS - Head to Head comparison
500Tech
 
Zepto and the rise of the JavaScript Micro-Frameworks
Thomas Fuchs
 
Stripe con 2021 UI stack
MaximeRainville1
 
Faster on Rails
David Paluy
 
Electron
Jens Siebert
 
Building API in the cloud using Azure Functions
Aleksandar Bozinovski
 
Nicole Neumann - Let’s Monitor All The Things
Nicole Neumann
 
Angular 2 vs React
Iran Reyes Fleitas
 
Breaking the Server-Client Divide with Node.js and React
Dejan Glozic
 
Meteor meetup
David Brear
 
Developing, building, testing and deploying react native apps
Leena N
 
React.js in real world apps.
Emanuele DelBono
 
Ad

Similar to Munchkin (20)

PDF
From MEAN to the MERN Stack
Troy Miles
 
PPTX
Protractor Tutorial Quality in Agile 2015
Andrew Eisenberg
 
PDF
Angular Application Testing
Troy Miles
 
PPTX
JavaScripters Event Oct 22, 2016 · 2:00 PM: Common Mistakes made by Angular D...
JavaScripters Community
 
PDF
React && React Native workshop
Stacy Goh
 
PDF
The Peanut Butter Cup of Web-dev: Plack and single page web apps
John Anderson
 
PDF
Building Cloud Castles
Ben Scofield
 
PDF
Secure Node Code (workshop, O'Reilly Security)
Guy Podjarny
 
PPTX
Introduction to Akka - Atlanta Java Users Group
Roy Russo
 
PDF
Django for IoT: From hackathon to production (DjangoCon US)
Anna Schneider
 
PDF
Ember.js - A JavaScript framework for creating ambitious web applications
Juliana Lucena
 
PDF
Testing view controllers with Quick and Nimble
Marcio Klepacz
 
PPTX
yrs of IT experience in enterprise programming
narasimhulum1623
 
PPTX
20171108 PDN HOL React Basics
Rich Ross
 
PPTX
Zend server 6 using zf2, 2013 webinar
Yonni Mendes
 
PPTX
Adding a modern twist to legacy web applications
Jeff Durta
 
PDF
Ionic bbl le 19 février 2015
Loïc Knuchel
 
PDF
Puppet Performance Profiling
ripienaar
 
PDF
RxJava@Android
Maxim Volgin
 
KEY
DevQuiz 2011 の模範解答 Android編
Makoto Yamazaki
 
From MEAN to the MERN Stack
Troy Miles
 
Protractor Tutorial Quality in Agile 2015
Andrew Eisenberg
 
Angular Application Testing
Troy Miles
 
JavaScripters Event Oct 22, 2016 · 2:00 PM: Common Mistakes made by Angular D...
JavaScripters Community
 
React && React Native workshop
Stacy Goh
 
The Peanut Butter Cup of Web-dev: Plack and single page web apps
John Anderson
 
Building Cloud Castles
Ben Scofield
 
Secure Node Code (workshop, O'Reilly Security)
Guy Podjarny
 
Introduction to Akka - Atlanta Java Users Group
Roy Russo
 
Django for IoT: From hackathon to production (DjangoCon US)
Anna Schneider
 
Ember.js - A JavaScript framework for creating ambitious web applications
Juliana Lucena
 
Testing view controllers with Quick and Nimble
Marcio Klepacz
 
yrs of IT experience in enterprise programming
narasimhulum1623
 
20171108 PDN HOL React Basics
Rich Ross
 
Zend server 6 using zf2, 2013 webinar
Yonni Mendes
 
Adding a modern twist to legacy web applications
Jeff Durta
 
Ionic bbl le 19 février 2015
Loïc Knuchel
 
Puppet Performance Profiling
ripienaar
 
RxJava@Android
Maxim Volgin
 
DevQuiz 2011 の模範解答 Android編
Makoto Yamazaki
 
Ad

Recently uploaded (20)

PDF
ShowUs: Pharo Stream Deck (ESUG 2025, Gdansk)
ESUG
 
PDF
lesson-2-rules-of-netiquette.pdf.bshhsjdj
jasmenrojas249
 
PPTX
Contractor Management Platform and Software Solution for Compliance
SHEQ Network Limited
 
PDF
Applitools Platform Pulse: What's New and What's Coming - July 2025
Applitools
 
PDF
MiniTool Power Data Recovery Crack New Pre Activated Version Latest 2025
imang66g
 
PPTX
Presentation about variables and constant.pptx
safalsingh810
 
PPT
Why Reliable Server Maintenance Service in New York is Crucial for Your Business
Sam Vohra
 
PDF
New Download MiniTool Partition Wizard Crack Latest Version 2025
imang66g
 
PPT
Activate_Methodology_Summary presentatio
annapureddyn
 
PDF
An Experience-Based Look at AI Lead Generation Pricing, Features & B2B Results
Thomas albart
 
PPTX
ASSIGNMENT_1[1][1][1][1][1] (1) variables.pptx
kr2589474
 
PDF
Download iTop VPN Free 6.1.0.5882 Crack Full Activated Pre Latest 2025
imang66g
 
PDF
WatchTraderHub - Watch Dealer software with inventory management and multi-ch...
WatchDealer Pavel
 
PDF
What to consider before purchasing Microsoft 365 Business Premium_PDF.pdf
Q-Advise
 
PPTX
GALILEO CRS SYSTEM | GALILEO TRAVEL SOFTWARE
philipnathen82
 
PPTX
AI-Ready Handoff: Auto-Summaries & Draft Emails from MQL to Slack in One Flow
bbedford2
 
PDF
Jenkins: An open-source automation server powering CI/CD Automation
SaikatBasu37
 
PDF
Adobe Illustrator Crack Full Download (Latest Version 2025) Pre-Activated
imang66g
 
DOCX
Can You Build Dashboards Using Open Source Visualization Tool.docx
Varsha Nayak
 
PDF
advancepresentationskillshdhdhhdhdhdhhfhf
jasmenrojas249
 
ShowUs: Pharo Stream Deck (ESUG 2025, Gdansk)
ESUG
 
lesson-2-rules-of-netiquette.pdf.bshhsjdj
jasmenrojas249
 
Contractor Management Platform and Software Solution for Compliance
SHEQ Network Limited
 
Applitools Platform Pulse: What's New and What's Coming - July 2025
Applitools
 
MiniTool Power Data Recovery Crack New Pre Activated Version Latest 2025
imang66g
 
Presentation about variables and constant.pptx
safalsingh810
 
Why Reliable Server Maintenance Service in New York is Crucial for Your Business
Sam Vohra
 
New Download MiniTool Partition Wizard Crack Latest Version 2025
imang66g
 
Activate_Methodology_Summary presentatio
annapureddyn
 
An Experience-Based Look at AI Lead Generation Pricing, Features & B2B Results
Thomas albart
 
ASSIGNMENT_1[1][1][1][1][1] (1) variables.pptx
kr2589474
 
Download iTop VPN Free 6.1.0.5882 Crack Full Activated Pre Latest 2025
imang66g
 
WatchTraderHub - Watch Dealer software with inventory management and multi-ch...
WatchDealer Pavel
 
What to consider before purchasing Microsoft 365 Business Premium_PDF.pdf
Q-Advise
 
GALILEO CRS SYSTEM | GALILEO TRAVEL SOFTWARE
philipnathen82
 
AI-Ready Handoff: Auto-Summaries & Draft Emails from MQL to Slack in One Flow
bbedford2
 
Jenkins: An open-source automation server powering CI/CD Automation
SaikatBasu37
 
Adobe Illustrator Crack Full Download (Latest Version 2025) Pre-Activated
imang66g
 
Can You Build Dashboards Using Open Source Visualization Tool.docx
Varsha Nayak
 
advancepresentationskillshdhdhhdhdhdhhfhf
jasmenrojas249
 

Munchkin