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
JLRoutesについて
Search
ninjinkun
March 12, 2014
Technology
2.5k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
JLRoutesについて
ninjinkun
March 12, 2014
More Decks by ninjinkun
See All by ninjinkun
買収から2ヶ月でシステム統合した話
ninjinkun
0
180
Designer's and Engineer's Thinking Styles
ninjinkun
0
330
Launchable Webinar テストを効率化して生産性を上げる方法
ninjinkun
2
620
ディープリンクの 設計と実装 - iOSDC2017
ninjinkun
18
11k
スマートフォンアプリ開発における共創的な開発チーム
ninjinkun
61
19k
ReSwiftでアプリの状態管理 / Reactive Swift Meetup
ninjinkun
9
18k
フリルのアプリ開発今昔物語
ninjinkun
3
2.3k
プロトタイピング合宿によるデザインリニューアル
ninjinkun
1
3.2k
デザイナーが仕事をしやすいアプリエンジニアを考える
ninjinkun
4
770
Other Decks in Technology
See All in Technology
Deep Data Security 機能解説
oracle4engineer
PRO
3
950
Snowflake でできることが増えたら、 ABAC が必要になった
kaeton
0
110
Flutter Widget Previewerで始めるUIプレビューとVRTの自動化
sakusaku3939
0
150
渡米前の準備を制す!re:Invent 2026徹底準備術 / The Ultimate Preparation Guide for re:Invent 2026
yuj1osm
1
350
Don't write the architecture only in the prompt.
neohsu
0
180
ビジネス部門からPOを迎えての半年間の進歩と課題
zozotech
PRO
0
150
ドメインエキスパートは いかにして AI を使って プロダクト開発をするか
tatsuyashiraishi
1
220
Draft AIエージェントの トークン消費を最小化する 8つの原則
kinopeee
6
1.8k
ひとりで始めた AI駆動開発、チームに広げて何が変わったのか
kenichiodo
0
130
2026-10-24 JAWS JAWS-UG 茨城 #18 IAM Policy Autopilotってなにさ。terraform planからIAM Policyつくれるの? / What's IAM Policy Autopilot
masasuzu
0
180
Agent × Maestro で始める モバイル E2E 端末準備からテスト実行・結果確認まで
sansantech
PRO
0
230
Adversary Infrastructure Hunting101
disconinja
0
160
Featured
See All Featured
Design in an AI World
tapps
1
370
Typedesign – Prime Four
hannesfritz
42
3.2k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
470
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
470
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.9k
Six Lessons from altMBA
skipperchong
29
4.5k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
740
Unsuck your backbone
ammeep
672
58k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
460
Discover your Explorer Soul
emna__ayadi
2
1.3k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
340
Transcript
+-3PVUFTʹ͍ͭͯ OJOKJOLVO
J04ΞϓϦͱ63-εΩʔϜ w 8FCϖʔδ͔ΒΞϓϦΛىಈͯ͠ίϯςϯπΛදࣔ w ϩάΠϯॲཧͳͲͷϑϩʔͷҰ෦ w ଞΞϓϦͱͷ࿈ܞ 63-εΩʔϜ͕ඞཁʹͳΔ߹
J04ΞϓϦͱ63-εΩʔϜ w εΩʔϜΛઃఆ ! w ύεΛύʔε w OKLTFBSDI w ΫΤϦΛύʔε
w OKLTFBSDI RQPUBUPUJQT w ॲཧΛىಈ ॲཧͷྲྀΕ
J04ΞϓϦͱ63-εΩʔϜ ࣮ྫ -(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { if ([url.path isEqualToString:@“/search"])
{ NSString *searchQuery; NSArray *queries = [url.query componentsSeparatedByString:@"&"]; for (NSString *query in queries) { NSArray *keyValue = [query componentsSeparatedByString:@"="]; if (keyValue.count == 2) { if ([keyValue[0] isEqualToString:@"q"]) { searchQuery = keyValue[1]; // Search query found!! } } } ! SearchResultViewController *viewController = [[SearchResultViewController alloc] initWithQuery:query]; [self showViewController:viewController]; return YES; } } OKLTFBSDI RQPUBUPUJQT
J04ΞϓϦͱ63-εΩʔϜ w ϧʔςΟϯάͷϧʔϧهड़ͱॲཧ͕͞Ε͍ͯͳ͍ w "QQ%FMFHBUFʹͨॻ͖͕ͪ͠ w JGจ͕ͲΜͲΜ૿͍͑ͯ͘ w ΫΤϦΛखͰύʔε͍ͯ͠Δ w
/463-ʹΫΤϦΛߏମͱͯ͠औΓग़͢Έ͕ ͳ͍ w ΈΜͳΦϨΦϨΫΤϦύʔαʔΛ࣋ͭΑ͏ʹͳΔ Կ͕͔
J04ΞϓϦͱ63-εΩʔϜ w ύεʹม͕ೖ͍ͬͯΔͱݸผʹύʔε͢Δඞཁ͕͋ Δ w VTFSOJOKJOLVOQSPpMF w શ෦ΫΤϦʹೖΕͯ͘ΕʜΈ͍ͨͳؾʹͳͬͯΑ͘ ͳ͍ !
w ʜͱ৭ʑ͋ͬͯมߋʹऑ͍ Կ͕͔
+-3PVUFT w 63-ͷύλʔϯͱCMPDLTΛొ w 63-͕དྷͨΒCMPDLTΛىಈ w 4JOBUSB3PVUFSMJLFͳΠϯλʔϑΣΠε w ύϥϝʔλʔͷड͚͠ͳͲαϙʔτ w
IUUQTHJUIVCDPNKPFMEFW+-3PVUFT
+-3PVUFT ͍ํ JLRoutes *router = [JLRoutes routesForScheme:@“njk"]; ! [router addRoute:@"/search"
handler:^BOOL(NSDictionary *parameters) { NSString *searchQuery = parameters[@“q"]; ! SearchResultViewController *viewController = [[SearchResultViewController alloc] initWithQuery:searchQuery]; [self showViewController:viewController]; return YES; }]; ! [router addRoute:@"/users/:user_id" handler:^BOOL(NSDictionary *parameters) { NSString *userId = parameters[@"user_id"]; ! UserViewController *viewController = [[UserViewController alloc] init]; viewController.userId = userId; [self showViewController:viewController]; return YES; }];
+-3PVUFT w ϧʔςΟϯάϧʔϧͷొͱ࣮ߦΛͰ͖Δ ͍ํ @implementation AppDelegate ! -(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL
*)url { JLRoutes *router = [JLRoutes routesForScheme:@"njk"]; return [router routeURL:url]; } ! @end
ଞϥΠϒϥϦͱͷൺֱ w /JNCVT,JUTPDLJU w 4USJOH0CKFDU$PEJOHGPS0CKFDUJWF$ w จࣈྻͷύλʔϯ͔ΒΦϒδΣΫτͷੜ·Ͱͬͯ͘ΕΔ w SPVUBCMFJPT w
63-6*7JFX$POUSPMMFS w ֎෦͔Β63-εΩʔϚΛىಈ͢Δ͜ͱఆ͍ͯ͠ͳͦ͞͏ w +-3PVUFT w 63-ͱCMPDLTͷσΟεύον͚ͩʹಛԽͯ͠γϯϓϧ
·ͱΊ w 63-εΩʔϜΛ͏͜ͱ͕͋Ε+-3PVUFΦεεϝ w 4JOBUSB3PVUFSMJLFͳͷͰهड़͕γϯϓϧͰมߋ ؆୯
͓·͚ 9DPEF "3$@45"/%"3%
"3$@45"/%"3% w 9DPEF w "3$@45"/%"3%BSNWBSNWT w 9DPEF w
"3$@45"/%"3%BSNWBSNWTBSN ! w CJUະରԠͷϥΠϒϥϦ͕͍ࠞͬͯ͟ΔͱϏϧυͰ ͖ͳ͍
"3$@45"/%"3% w खͰࢦఆ͢Δͱ$PDPB1PETͰ͚͜Δ ! ! ! ! w
ෳͷ"3$)4ΛϋϯυϦϯάͰ͖ͳ͍όά ͕͋Δ $PDPB1PET
"3$@45"/%"3% w 45"/%"3%@"3$)@@#*5 Λ͑ղܾ ! ! w
݁ہCJUରԠ͕ਖ਼ಓ w ͓͍ͷϥΠϒϥϦ͕CJUରԠ͢ΔΛͪ·͠ΐ͏ 4PMVUJPO
"3$@45"/%"3% 4PMVUJPO