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
Adrien Humilière
June 30, 2022
Programming
0
34
Build an iOS app from an iPad
Presented at CocoaHeads Paris in June 2022
Adrien Humilière
June 30, 2022
Tweet
Share
More Decks by Adrien Humilière
See All by Adrien Humilière
Attention to details
adhumi
0
7
Something about Xcode ^^
adhumi
0
130
Inside Brut.
adhumi
0
91
Localization done bien
adhumi
1
260
Test and distribute an iOS app with Gitlab CI
adhumi
0
360
Pushing Forward iOS Notifications
adhumi
0
190
Good practices for iOS releases
adhumi
0
210
What's new in iOS 9
adhumi
0
330
Rebranding an iOS app
adhumi
0
260
Other Decks in Programming
See All in Programming
PHPUnitの限界をPlaywrightで補完するテストアプローチ
yuzneri
0
400
Comparing decimals in Swift Testing
417_72ki
0
170
構文解析器入門
ydah
7
2.1k
AIコーディングエージェント全社導入とセキュリティ対策
hikaruegashira
16
9.6k
React は次の10年を生き残れるか:3つのトレンドから考える
oukayuka
41
16k
マイコンでもRustのtestがしたい その2/KernelVM Tokyo 18
tnishinaga
2
1.9k
DynamoDBは怖くない!〜テーブル設計の勘所とテスト戦略〜
hyamazaki
0
200
Dart 参戦!!静的型付き言語界の隠れた実力者
kno3a87
0
180
新しいモバイルアプリ勉強会(仮)について
uetyo
1
250
#QiitaBash TDDで(自分の)開発がどう変わったか
ryosukedtomita
1
360
Gemini CLIの"強み"を知る! Gemini CLIとClaude Codeを比較してみた!
kotahisafuru
3
960
あまり知られていない MCP 仕様たち / MCP specifications that aren’t widely known
ktr_0731
0
240
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
Art, The Web, and Tiny UX
lynnandtonic
301
21k
Facilitating Awesome Meetings
lara
54
6.5k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.4k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
21k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
31
2.2k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
131
19k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
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