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
Source Code Generator for Team Development/code...
Search
Taketo Yoshida
August 08, 2017
Programming
1.8k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Source Code Generator for Team Development/code-generator-for-team-development
Otemachi.swift x Kyobashi.swift #01
Taketo Yoshida
August 08, 2017
More Decks by Taketo Yoshida
See All by Taketo Yoshida
Beautiful Japanese line break for the Web
tamanyan
1
650
新しい画像フォーマットHEIFを 用いたiOSアプリの通信量削減/iosdc-heif
tamanyan
9
6.8k
How to Design Great Alerts/how-to-design-great-alerts
tamanyan
0
670
iOSエンジニアがReact-Nativeに触れてみた/ios-developer-react-native
tamanyan
0
510
フォーシームのスピン量とその効果/the-effect-of-fourseam-fastball-spin-rate
tamanyan
1
960
Objective-CからSwift移行を始めて感じた事/ObjC-to-Swift
tamanyan
1
1.6k
Modern and Practical Networking in Swift
tamanyan
2
850
まだJPEGで消耗してるの?/iOSDC-Reject-Conference
tamanyan
0
3.1k
SwiftでWebPを使ってみた/melon-swift-webp
tamanyan
1
1.6k
Other Decks in Programming
See All in Programming
Python Lambdaにおけるテストしやすい設計とAI支援の活用 / Designing Testable Python Lambda Functions with AI
kitano_yuichi
1
310
エージェントを使い続けるためのメタワーク / Meta-work for keeping using the agent
rkaga
6
2.2k
React Native経験者が Flutterを30⽇間触って驚いたこと
3saito
0
170
Apple Intelligenceとオンデバイス時代の到来
yahir0
0
240
Seven New Principles of Software Engineering
yegor256
0
470
PyConTW 2026 - AI Coding 不只是工具升級, 區域醫院醫療資訊系統協作開發與資訊團隊轉型實踐
cclai999
0
240
느린 네트워크와 저사양 디바이스 사용자를 위한 웹뷰 로딩 시간 개선기
kmkim
1
220
TS 7.0 で baseUrl が使えなくなった今、パスエイリアスをどうするか
bicstone
2
580
Spec-Driven Development - Why Vaadin Is the Perfect Fit
simas
PRO
0
240
小さなアプリを作って公開するまで
onozaty
0
150
私なりのハーネスエンジニアリング ~独自の言語処理系の開発を通して~
seosoft
0
200
AI時代のシニアエンジニアとは
yosuke_furukawa
PRO
15
11k
Featured
See All Featured
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
930
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
590
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
3
3.9k
Building the Perfect Custom Keyboard
takai
2
950
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.5k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
560
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
240
Utilizing Notion as your number one productivity tool
mfonobong
4
640
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3.1k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.2k
The Spectacular Lies of Maps
axbom
PRO
1
1.1k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
560
Transcript
4PVSDF$PEF(FOFSBUPS GPS5FBN%FWFMPQNFOU 5BLFUP:PTIJEB 0UFNBDIJTXJGUY,ZPCBTIJTXJGU
5BLFUP:PTIJEB J04%FWFMPQFS!/JLLFJ فٗꅿ椔⚾ծة؎桬㕂" !5BNB0CKFDU !UBNBOZBO J04%$ד涫㠡׃תׅ )&*'חאְג
.Z8PSLT
5-%3 4UBOEBSEJ[FZPVSBSDIJUFDUVSFPGBOBQQMJDBUJPOJOZPVSUFBN 4PVSDF$PEF(FOFSBUPSIFMQTPVUXJUIDPEFTUBOEBSEJ[BUJPO %FNP
5FBN%FWFMPQNFOUJT%JDVMU
4UBOEBSEJ[FZPVSBSDIJUFDUVSFBOEDPEJOHTUZMF ,FFQTPVSDFDPEFDMFBO )PXUPJOWJUFOFXDPNFS
4UBOEBSEJ[FZPVSBSDIJUFDUVSFBOEDPEJOHTUZMF ,FFQTPVSDFDPEFDMFBO )PXUPJOWJUFOFXDPNFS
)PXUP4UBOEBSEJ[F ZPVSBSDIJUFDUVSFBOEDPEJOHTUZMF
4PVSDF$PEF(FOFSBUPS
(FOFSBNCB 4PVSDF$PEF(FOFSBUPSXPSLJOHXJUI9DPEF %FTJHOFEUPHFOFSBUF7*1&3NPEVMFT &BTZUPDVTUPNJ[F
view_model.swift.liquid SomeViewModel.swift // // {{ module_info.file_name }} // {{
module_info.project_name }} // // Created by {{ developer.name }} on {{ date }}. // Copyright © {{ year }} {{ developer.company }}. // All rights reserved. // import Foundation import RxSwift import RxCocoa protocol {{ module_info.name }}ViewModel: class { var isLoading: Driver<Bool> { get } var hasError: Driver<Bool> { get } } // // SomeViewModelViewModel.swift // Nikkei // // Created by Taketo Yoshida on 23/02/2017. // Copyright © 2017 nikkei. // All rights reserved. // import Foundation import RxSwift import RxCocoa protocol SomeViewModel: class { var isLoading: Driver<Bool> { get } var hasError: Driver<Bool> { get } }
5IF&FDUPGVTJOH(FOFSBNCB 3FEVDFUIFSJTLPGPSJHJOBMJNQMFNFOUBUJPO %POUOFFEUPXSJUFDPNNPODPEF "VUPNBUJDBMMZBEETPVSDFDPEFNPEVMFTJOUPZPVS9DPEF1SPKFDU
6TF$BTFJO/JLLFJ
5IF"SDIJUFDUVSFPG/JLLFJ"QQ .77. 3Y4XJGU 7*1&38JSFGSBNF $POTUSVDUPS*OKFDUJPO &ODBQTVMBUFTB6TF$BTFPSB'VODUJPOBMJUZBT.PEVMF
$MBTTFT .PEVMFT "SUJDMF-JTU /JLLFJ $PNNPO 4FBSDI -PHJO &ODBQTVMBUFTB6TF$BTFPSB'VODUJPOBMJUZBT.PEVMF 6TF$BTFPS'VODUJPOBMJUZ
7JFX "SUJDMF-JTU 7JFX.PEFM -BZFSTJOBNPEVMF .PEFM 8JSFGSBNF #VJMEFS
.Z1SPKFDU(FOFSBNCB5FNQMBUF
view_model.swift.liquid protocol {{ module_info.name }}ViewModel: class { /** Output
Definition of ViewModel */ var isLoading: Driver<Bool> { get } var hasError: Driver<Bool> { get } var toastMessage: Driver<String> { get } /** Input Definition of ViewModel */ }
view_model.swift.liquid final class {{ module_info.name }}ViewModelImpl: {{ module_info.name }}ViewModel
{ let disposeBag = DisposeBag() // output let isLoading: Driver<Bool> let hasError: Driver<Bool> let toastMessage: Driver<String> // input init(model: {{ module_info.name }}Model, wireframe: {{ module_info.name }}Wireframe, scheduler: SchedulerService = MainSchedulerService.shared) { self.isLoading = model.isLoading .asDriver(onErrorDriveWith: Driver.empty()) self.hasError = model.errors .map({ $0.isError }) .asDriver(onErrorDriveWith: Driver.empty()) self.toastMessage = model.errors .map({ $0.description }) .filterNil() .asDriver(onErrorDriveWith: Driver.empty()) } }
%FNP
4VNNBSZ *UTEJDVMUUPTUBOEBSEJ[FZPVSBSDIJUFDUVSFBOEDPEJOHTUZMF (FOFSBNCBIFMQTPVUXJUIDPEFTUBOEBSEJ[BUJPOJOBUFBN -JOUFSUPPMT DPEJOHTUZMFHVJEFBOEDPEFSFWJFXBSFBMTPFFDUJWF
TOJLLFJDPNTBJZP
5IBOLT%