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
Build an iOS app from an iPad
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Adrien Humilière
June 30, 2022
Programming
73
0
Share
Build an iOS app from an iPad
Presented at CocoaHeads Paris in June 2022
Adrien Humilière
June 30, 2022
More Decks by Adrien Humilière
See All by Adrien Humilière
Attention to details
adhumi
0
15
Something about Xcode ^^
adhumi
0
150
Inside Brut.
adhumi
0
130
Localization done bien
adhumi
1
280
Test and distribute an iOS app with Gitlab CI
adhumi
0
400
Pushing Forward iOS Notifications
adhumi
0
220
Good practices for iOS releases
adhumi
0
240
What's new in iOS 9
adhumi
0
380
Rebranding an iOS app
adhumi
0
280
Other Decks in Programming
See All in Programming
テレメトリーシグナルが導くパフォーマンス最適化 / Performance Optimization Driven by Telemetry Signals
seike460
PRO
2
220
20260320登壇資料
pharct
0
160
レガシーPHP転生 〜父がドメインエキスパートだったのでDDD+Claude Codeでチート開発します〜
panda_program
0
580
我々はなぜ「層」を分けるのか〜「関心の分離」と「抽象化」で手に入れる変更に強いシンプルな設計〜 #phperkaigi / PHPerKaigi 2026
shogogg
2
830
10年分の技術的負債、完済へ ― Claude Code主導のAI駆動開発でスポーツブルを丸ごとリプレイスした話
takuya_houshima
0
1.8k
의존성 주입과 모듈화
fornewid
0
110
RSAが破られる前に知っておきたい 耐量子計算機暗号(PQC)入門 / Intro to PQC: Preparing for the Post-RSA Era
mackey0225
3
120
感情を設計する
ichimichi
5
1.3k
煩雑なSkills管理をSoC(関心の分離)により解決する――関心を分離し、プロンプトを部品として育てるためのOSSを作った話 / Solving Complex Skills Management Through SoC (Separation of Concerns)
nrslib
3
730
Codex CLIのSubagentsによる並列API実装 / Parallel API Implementation with Codex CLI Subagents
takatty
2
860
Go_College_最終発表資料__外部公開用_.pdf
xe_pc23
0
130
ネイティブアプリとWebフロントエンドのAPI通信ラッパーにおける共通化の勘所
suguruooki
0
250
Featured
See All Featured
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
64
54k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
120
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
370
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
680
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.1k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
220
Navigating Team Friction
lara
192
16k
Believing is Seeing
oripsolob
1
110
Designing for Performance
lara
611
70k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.8k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.6k
Transcript
None
None
None
None
None
None
Swift Playgrounds 4.0
None
None
Faire une app depuis un iPad
Adrien Humilière @adhumi Engineering Manager @ Dashlane
None
None
None
None
None
None
None
xcodeproj
App.swiftpm
App.swiftpm → Package.swift
// swift-tools-version: 5.6 // WARNING: // This file is automatically
generated. // Do not edit it by hand because the contents will be replaced. import PackageDescription import AppleProductTypes let package = Package( name: "Chapelle", platforms: [ .iOS("15.2") ], ... dependencies: [ .package(url: "https://github.com/scinfu/SwiftSoup.git", "2.3.4"..<"3.0.0") ], targets: [ .executableTarget( name: "AppModule", dependencies: [ .product(name: "SwiftSoup", package: "SwiftSoup") ], path: ".", resources: [ .process("Resources") ] ) ] )
// swift-tools-version: 5.6 // WARNING: // This file is automatically
generated. // Do not edit it by hand because the contents will be replaced. import PackageDescription import AppleProductTypes let package = Package( name: "Chapelle", platforms: [ .iOS("15.2") ], ... dependencies: [ .package(url: "https://github.com/scinfu/SwiftSoup.git", "2.3.4"..<"3.0.0") ], targets: [ .executableTarget( name: "AppModule", dependencies: [ .product(name: "SwiftSoup", package: "SwiftSoup") ], path: ".", resources: [ .process("Resources") ] ) ] )
// swift-tools-version: 5.6 // WARNING: // This file is automatically
generated. // Do not edit it by hand because the contents will be replaced. import PackageDescription import AppleProductTypes let package = Package( name: "Chapelle", platforms: [ .iOS("15.2") ], ... dependencies: [ .package(url: "https://github.com/scinfu/SwiftSoup.git", "2.3.4"..<"3.0.0") ], targets: [ .executableTarget( name: "AppModule", dependencies: [ .product(name: "SwiftSoup", package: "SwiftSoup") ], path: ".", resources: [ .process("Resources") ] ) ] )
products: [ .iOSApplication( name: "Chapelle", targets: ["AppModule"], bundleIdentifier: "fr.adhumi.chapelledesbois", teamIdentifier:
"E873B24XVN", displayVersion: "4", bundleVersion: "15", appIcon: .asset("AppIcon"), accentColor: .asset("AccentColor"), supportedDeviceFamilies: [ .pad, .phone ], supportedInterfaceOrientations: [ .portrait, .landscapeRight, .landscapeLeft, .portraitUpsideDown(.when(deviceFamilies: [.pad])) ], capabilities: [ .outgoingNetworkConnections() ], appCategory: .travel ) ],
products: [ .iOSApplication( name: "Chapelle", targets: ["AppModule"], bundleIdentifier: "fr.adhumi.chapelledesbois", teamIdentifier:
"E873B24XVN", displayVersion: "4", bundleVersion: "15", appIcon: .asset("AppIcon"), accentColor: .asset("AccentColor"), supportedDeviceFamilies: [ .pad, .phone ], supportedInterfaceOrientations: [ .portrait, .landscapeRight, .landscapeLeft, .portraitUpsideDown(.when(deviceFamilies: [.pad])) ], capabilities: [ .outgoingNetworkConnections() ], appCategory: .travel ) ],
products: [ .iOSApplication( name: "Chapelle", targets: ["AppModule"], bundleIdentifier: "fr.adhumi.chapelledesbois", teamIdentifier:
"E873B24XVN", displayVersion: "4", bundleVersion: "15", appIcon: .asset("AppIcon"), accentColor: .asset("AccentColor"), supportedDeviceFamilies: [ .pad, .phone ], supportedInterfaceOrientations: [ .portrait, .landscapeRight, .landscapeLeft, .portraitUpsideDown(.when(deviceFamilies: [.pad])) ], capabilities: [ .outgoingNetworkConnections() ], appCategory: .travel ) ],
products: [ .iOSApplication( name: "Chapelle", targets: ["AppModule"], bundleIdentifier: "fr.adhumi.chapelledesbois", teamIdentifier:
"E873B24XVN", displayVersion: "4", bundleVersion: "15", appIcon: .asset("AppIcon"), accentColor: .asset("AccentColor"), supportedDeviceFamilies: [ .pad, .phone ], supportedInterfaceOrientations: [ .portrait, .landscapeRight, .landscapeLeft, .portraitUpsideDown(.when(deviceFamilies: [.pad])) ], capabilities: [ .outgoingNetworkConnections() ], appCategory: .travel ) ],
None
None
None
None
• Développement simple et rapide
• Développement simple et rapide • Autocomplétion efficace
• Développement simple et rapide • Autocomplétion efficace • Idéal
pour des devs débutants/amateurs
• Développement simple et rapide • Autocomplétion efficace • Idéal
pour des devs débutants/amateurs • iPad
None
• Peu de réglages
• Peu de réglages • Pas d’extensions
• Peu de réglages • Pas d’extensions • Peu de
détails sur les erreurs de build
• Peu de réglages • Pas d’extensions • Peu de
détails sur les erreurs de build • Source control
• Peu de réglages • Pas d’extensions • Peu de
détails sur les erreurs de build • Source control • Xcode Cloud !?
• Peu de réglages • Pas d’extensions • Peu de
détails sur les erreurs de build • Source control • Xcode Cloud !? • iPad
Qu’est ce que ça dit du futur du développement iOS
?
Merci de votre attention !
None