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
25
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
Something about Xcode ^^
adhumi
0
120
Inside Brut.
adhumi
0
83
Localization done bien
adhumi
1
240
Test and distribute an iOS app with Gitlab CI
adhumi
0
350
Pushing Forward iOS Notifications
adhumi
0
180
Good practices for iOS releases
adhumi
0
200
What's new in iOS 9
adhumi
0
290
Rebranding an iOS app
adhumi
0
240
Cocoapods for private libraries
adhumi
0
120
Other Decks in Programming
See All in Programming
『改訂新版 良いコード/悪いコードで学ぶ設計入門』活用方法−爆速でスキルアップする!効果的な学習アプローチ / effective-learning-of-good-code
minodriven
28
4.1k
Jaspr Dart Web Framework 박제창 @Devfest 2024
itsmedreamwalker
0
150
為你自己學 Python
eddie
0
520
ErdMap: Thinking about a map for Rails applications
makicamel
1
630
HTML/CSS超絶浅い説明
yuki0329
0
190
ESLintプラグインを使用してCDKのセオリーを適用する
yamanashi_ren01
2
240
快速入門可觀測性
blueswen
0
500
オニオンアーキテクチャを使って、 Unityと.NETでコードを共有する
soi013
0
370
いりゃあせ、PHPカンファレンス名古屋2025 / Welcome to PHP Conference Nagoya 2025
ttskch
1
170
DevinとCursorから学ぶAIエージェントメモリーの設計とMoatの考え方
itarutomy
0
140
Внедряем бюджетирование, или Как сделать хорошо?
lamodatech
0
940
Lookerは可視化だけじゃない。UIコンポーネントもあるんだ!
ymd65536
1
130
Featured
See All Featured
Navigating Team Friction
lara
183
15k
Testing 201, or: Great Expectations
jmmastey
41
7.2k
Six Lessons from altMBA
skipperchong
27
3.6k
A designer walks into a library…
pauljervisheath
205
24k
Learning to Love Humans: Emotional Interface Design
aarron
274
40k
RailsConf 2023
tenderlove
29
970
Building Applications with DynamoDB
mza
93
6.2k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
127
18k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Git: the NoSQL Database
bkeepers
PRO
427
64k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7k
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