SlideShare a Scribd company logo
iOSでライブラリを
提供する際に気をつけたいこと
【iOS/Android/AWS/Go】モノづくりにこだわる
3社のアプリやサービス開発の裏側
株式会社ソニックムーブ
坂原 明裕
坂原 明裕
Twitter ID: @asakahara
ブログ: http://sakahara.hatenablog.jp
• 前職ははてな(京都)でiOSエンジニア
• 2015年7月からソニックムーブのエンジニア
• 広島 (地元) -> 京都 -> 島根
ソニックムーブ島根事業所
• 2014年11月から開設
• 松江駅から車で10-15分程度の山の上にあるオフィス
• 現在はエンジニア5名
今日話すこと
• Static Library、Frameworkについて
• FrameworkでBitcodeに対応する方法
• AppStoreへ申請する際の注意点
Libraryの種類
• Xcode 6からCocoa Touch Frameworkが使える
• それ以前はiOSではCocoa Touch Static Libraryのみ
Static Libraryとは
• アプリケーションのコンパイル時に組み込まれる形で(静
的に)リンクされるライブラリ
• コンパイル時に組み込まれるので、その分アプリケーシ
ョンのサイズが大きくなる
• Xcode 5まではiOSではStatic Libraryしか使えない
• 画像やNibなどのリソースを含むことができない
Frameworkとは
• A framework is a hierarchical directory that encapsulates
shared resources, such as a dynamic shared library, nib
files, image files, localized strings, header files, and
reference documentation in a single package.
• 動的共有ライブラリ、nib、画像、ローカライズファイル
、ヘッダーファイル、ドキュメント等のリソースファイ
ルを1つのパッケージにまとめたディレクトリ構造のこ
と
Frameworkの構造
MyFramework.framework/
MyFramework -> Versions/Current/MyFramework
Resources -> Versions/Current/Resources
Versions/
A/
MyFramework
Resources/
English.lproj/
InfoPlist.strings
Info.plist
Current -> A
Embedded Framework
• iOS8、Xcode6から使用可能
• Frameworkを作るのが簡単に(ビルド用のスクリプトなど
必要なくなった)
• App Extensionsを使用するケースなどを想定し、簡単に
複数ターゲットから参照・利用することができるように
なった
Embedded Frameworkの
注意点
• Deployment Targetを8.0以降にしたアプリにしか組み込めない
• 実際にはSwiftで実装する場合、frameworkのDeployment Targetを
7.0にしておけば、7.0以降のアプリにも組み込みは問題なくできる
• しかし上記設定だとAppStoreへのアップロード時にエラーになる
• iOS8より以前をサポートしたい場合、Embedded Frameworkでは
なくStatic LibraryをObjective-Cで作成する(Swiftはサポートしてい
ない)
Universal Framework
• 実機、シミュレータの両方の環境を一つのFrameworkで
サポートする
• New -> Target -> Other -> Aggregate でUniversal
Framework作成用のターゲットを作る
• 作成したターゲット -> Build Phases -> +ボタン -> New
Run Script Phase でRun Scriptを追加
#!/bin/sh
UNIVERSAL_OUTPUTFOLDER=${BUILD_DIR}/${CONFIGURATION}-universal
mkdir -p "${UNIVERSAL_OUTPUTFOLDER}"
# ビルドする
xcodebuild -target "${PROJECT_NAME}" ONLY_ACTIVE_ARCH=NO -configuration ${CONFIGURATION} -sdk
iphoneos BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}" clean build
xcodebuild -target "${PROJECT_NAME}" -configuration ${CONFIGURATION} -sdk iphonesimulator
ONLY_ACTIVE_ARCH=NO BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}" clean build
# iphoneos配下のframeworkをコピーする
cp -R "${BUILD_DIR}/${CONFIGURATION}-iphoneos/${PROJECT_NAME}.framework"
"${UNIVERSAL_OUTPUTFOLDER}/"
# iphoneos配下のswiftmoduleをコピーする
cp -R "${BUILD_DIR}/${CONFIGURATION}-
iphonesimulator/${PROJECT_NAME}.framework/Modules/${PROJECT_NAME}.swiftmodule/."
"${UNIVERSAL_OUTPUTFOLDER}/${PROJECT_NAME}.framework/Modules/${PROJECT_NAME}.swiftmodule"
# lipoコマンドでUniversal binaryを作成
lipo -create -output "${UNIVERSAL_OUTPUTFOLDER}/${PROJECT_NAME}.framework/${PROJECT_NAME}"
"${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/${PROJECT_NAME}.framework/${PROJECT_NAME}"
"${BUILD_DIR}/${CONFIGURATION}-iphoneos/${PROJECT_NAME}.framework/${PROJECT_NAME}"
# プロジェクトフォルダ配下にframeworkをコピー
cp -R "${UNIVERSAL_OUTPUTFOLDER}/${PROJECT_NAME}.framework" "${PROJECT_DIR}"
Bitcodeについて
• iOS9からサポートしておりざっくり言うとApple側でアー
キテクチャに合ったコンパイルをしてくれる
• Archive時以外はBitcodeが埋め込まれない
• xcodebuildコマンドでビルドする場合は別途対応が必要
• User-DefinedにBITCODE_GENERATION_MODEをbitcode
で設定することでArchive以外でもBitcodeを埋め込める
BITCODE_GENERATION_MODEの設定
アプリでBitcodeを有効にするためにはアプリ
使うframeworkも全て対応が必須
AppStoreへ申請する際の注意点
• i386 x86_64がEmbedded Frameworkに含まれていると
申請時にサポートしていないアーキテクチャがあるとし
てエラーになる
• http://www.openradar.me/radar?id=6409498411401216
• 対応方法としてはアーカイブ時にRun Scriptでi386
x86_64のアーキテクチャを削除する方法などがある
不要なアーキテクチャを
削除する際の参考サイト
• Realmではstrip-frameworks.shという専用のスクリプト
を用意している
• https://github.com/realm/realm-
cocoa/blob/d59c86f11525f346c8e8db277fdbf2d9ff990d98/scripts/strip-
frameworks.sh
• 削除方法と削除するためのスクリプトが記載してある記
事
• http://ikennd.ac/blog/2015/02/stripping-unwanted-architectures-from-
dynamic-libraries-in-xcode/
まとめ
• iOS8より以前をサポートするならStatic Library(静的
Framework)を使いObjective-Cで実装する
• iOS8以降のサポートでよいならSwiftでEmbedded
Frameworkを使うのが一番手軽にできる
• 可能な限り開発者の負担を下げるためCocoaPods、
Cartago(今後はSwift Package Managerも)で導入できるよ
うにするとよい
最後に
島根に興味がある
エンジニアの方を募集してます
ご清聴ありがとうございました
!

More Related Content

What's hot

CloudFormation/SAMのススメ
CloudFormation/SAMのススメCloudFormation/SAMのススメ
CloudFormation/SAMのススメ
Eiji KOMINAMI
 
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
 
HadoopをBQにマイグレしようとしてる話
HadoopをBQにマイグレしようとしてる話HadoopをBQにマイグレしようとしてる話
HadoopをBQにマイグレしようとしてる話
Recruit Technologies
 
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
naoki koyama
 
backlogsでもCI/CDする夢を見る
backlogsでもCI/CDする夢を見るbacklogsでもCI/CDする夢を見る
backlogsでもCI/CDする夢を見る
Takeru Maehara
 
アプリ申請の基礎 リジェクト周り
アプリ申請の基礎 リジェクト周りアプリ申請の基礎 リジェクト周り
アプリ申請の基礎 リジェクト周り
Natsuki Yamanaka
 
【B-4】オープンソース開発で、フリー静的解析ツールを使ってみる
【B-4】オープンソース開発で、フリー静的解析ツールを使ってみる【B-4】オープンソース開発で、フリー静的解析ツールを使ってみる
【B-4】オープンソース開発で、フリー静的解析ツールを使ってみる
Developers Summit
 
戦う情シス!全社 API で社内アプリ開発を加速させよう
戦う情シス!全社 API で社内アプリ開発を加速させよう戦う情シス!全社 API で社内アプリ開発を加速させよう
戦う情シス!全社 API で社内アプリ開発を加速させよう
Yuki Hattori
 
「スキルなし・実績なし」 32歳窓際エンジニアがシリコンバレーで働くようになるまで
「スキルなし・実績なし」 32歳窓際エンジニアがシリコンバレーで働くようになるまで「スキルなし・実績なし」 32歳窓際エンジニアがシリコンバレーで働くようになるまで
「スキルなし・実績なし」 32歳窓際エンジニアがシリコンバレーで働くようになるまで
Shuichi Tsutsumi
 
今まで学び実践してきたこと
今まで学び実践してきたこと今まで学び実践してきたこと
今まで学び実践してきたこと
Daisuke Yamazaki
 
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
DeNA
 
【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法
【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法
【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法
NGINX, Inc.
 
モバイルアプリの高速で安定したビルドを支えるJenkins運用術
モバイルアプリの高速で安定したビルドを支えるJenkins運用術モバイルアプリの高速で安定したビルドを支えるJenkins運用術
モバイルアプリの高速で安定したビルドを支えるJenkins運用術
KLab Inc. / Tech
 
モデリングもしないでアジャイルとは何事だ
モデリングもしないでアジャイルとは何事だモデリングもしないでアジャイルとは何事だ
モデリングもしないでアジャイルとは何事だ
Iwao Harada
 
脱RESTful API設計の提案
脱RESTful API設計の提案脱RESTful API設計の提案
脱RESTful API設計の提案
樽八 仲川
 
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
Hiroshi Tokumaru
 
Serverless AWS構成でセキュアなSPAを目指す
Serverless AWS構成でセキュアなSPAを目指すServerless AWS構成でセキュアなSPAを目指す
Serverless AWS構成でセキュアなSPAを目指す
Masayuki Kato
 
CloudFrontのリアルタイムログをKibanaで可視化しよう
CloudFrontのリアルタイムログをKibanaで可視化しようCloudFrontのリアルタイムログをKibanaで可視化しよう
CloudFrontのリアルタイムログをKibanaで可視化しよう
Eiji KOMINAMI
 
20211109 bleaの使い方(基本編)
20211109 bleaの使い方(基本編)20211109 bleaの使い方(基本編)
20211109 bleaの使い方(基本編)
Amazon Web Services Japan
 
組織の問題も解決するアーキテクチャ BackendsForFrontends
組織の問題も解決するアーキテクチャ BackendsForFrontends組織の問題も解決するアーキテクチャ BackendsForFrontends
組織の問題も解決するアーキテクチャ BackendsForFrontends
PIXTA Inc.
 

What's hot (20)

CloudFormation/SAMのススメ
CloudFormation/SAMのススメCloudFormation/SAMのススメ
CloudFormation/SAMのススメ
 
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
 
HadoopをBQにマイグレしようとしてる話
HadoopをBQにマイグレしようとしてる話HadoopをBQにマイグレしようとしてる話
HadoopをBQにマイグレしようとしてる話
 
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
 
backlogsでもCI/CDする夢を見る
backlogsでもCI/CDする夢を見るbacklogsでもCI/CDする夢を見る
backlogsでもCI/CDする夢を見る
 
アプリ申請の基礎 リジェクト周り
アプリ申請の基礎 リジェクト周りアプリ申請の基礎 リジェクト周り
アプリ申請の基礎 リジェクト周り
 
【B-4】オープンソース開発で、フリー静的解析ツールを使ってみる
【B-4】オープンソース開発で、フリー静的解析ツールを使ってみる【B-4】オープンソース開発で、フリー静的解析ツールを使ってみる
【B-4】オープンソース開発で、フリー静的解析ツールを使ってみる
 
戦う情シス!全社 API で社内アプリ開発を加速させよう
戦う情シス!全社 API で社内アプリ開発を加速させよう戦う情シス!全社 API で社内アプリ開発を加速させよう
戦う情シス!全社 API で社内アプリ開発を加速させよう
 
「スキルなし・実績なし」 32歳窓際エンジニアがシリコンバレーで働くようになるまで
「スキルなし・実績なし」 32歳窓際エンジニアがシリコンバレーで働くようになるまで「スキルなし・実績なし」 32歳窓際エンジニアがシリコンバレーで働くようになるまで
「スキルなし・実績なし」 32歳窓際エンジニアがシリコンバレーで働くようになるまで
 
今まで学び実践してきたこと
今まで学び実践してきたこと今まで学び実践してきたこと
今まで学び実践してきたこと
 
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
 
【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法
【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法
【NGINXセミナー】 Ingressを使ってマイクロサービスの運用を楽にする方法
 
モバイルアプリの高速で安定したビルドを支えるJenkins運用術
モバイルアプリの高速で安定したビルドを支えるJenkins運用術モバイルアプリの高速で安定したビルドを支えるJenkins運用術
モバイルアプリの高速で安定したビルドを支えるJenkins運用術
 
モデリングもしないでアジャイルとは何事だ
モデリングもしないでアジャイルとは何事だモデリングもしないでアジャイルとは何事だ
モデリングもしないでアジャイルとは何事だ
 
脱RESTful API設計の提案
脱RESTful API設計の提案脱RESTful API設計の提案
脱RESTful API設計の提案
 
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
 
Serverless AWS構成でセキュアなSPAを目指す
Serverless AWS構成でセキュアなSPAを目指すServerless AWS構成でセキュアなSPAを目指す
Serverless AWS構成でセキュアなSPAを目指す
 
CloudFrontのリアルタイムログをKibanaで可視化しよう
CloudFrontのリアルタイムログをKibanaで可視化しようCloudFrontのリアルタイムログをKibanaで可視化しよう
CloudFrontのリアルタイムログをKibanaで可視化しよう
 
20211109 bleaの使い方(基本編)
20211109 bleaの使い方(基本編)20211109 bleaの使い方(基本編)
20211109 bleaの使い方(基本編)
 
組織の問題も解決するアーキテクチャ BackendsForFrontends
組織の問題も解決するアーキテクチャ BackendsForFrontends組織の問題も解決するアーキテクチャ BackendsForFrontends
組織の問題も解決するアーキテクチャ BackendsForFrontends
 

Similar to iOSでライブラリを提供する際に気をつけたいこと

IBM Watson Services for Core ML
IBM Watson Services for Core MLIBM Watson Services for Core ML
IBM Watson Services for Core ML
幸雄 村上
 
Swiftを迷わず選んだ理由
Swiftを迷わず選んだ理由Swiftを迷わず選んだ理由
Swiftを迷わず選んだ理由
zuckerburg
 
SwiftによるiOS開発再入門
SwiftによるiOS開発再入門SwiftによるiOS開発再入門
SwiftによるiOS開発再入門
Tomoki Hasegawa
 
SORACOM UG 関西 | SORACOMと、Sigfoxと、私
SORACOM UG 関西 | SORACOMと、Sigfoxと、私SORACOM UG 関西 | SORACOMと、Sigfoxと、私
SORACOM UG 関西 | SORACOMと、Sigfoxと、私
SORACOM,INC
 
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発takuma mori
 
デザイナー→Webエンジニア→iOSエンジニアと渡り歩いた僕なりのSwiftとの向き合い方と生かす戦略
デザイナー→Webエンジニア→iOSエンジニアと渡り歩いた僕なりのSwiftとの向き合い方と生かす戦略デザイナー→Webエンジニア→iOSエンジニアと渡り歩いた僕なりのSwiftとの向き合い方と生かす戦略
デザイナー→Webエンジニア→iOSエンジニアと渡り歩いた僕なりのSwiftとの向き合い方と生かす戦略
Fumiya Sakai
 
レイヤー分けをしたアーキテクチャで作るiOSアプリ&バックエンドのサンプル実装をのぞく
レイヤー分けをしたアーキテクチャで作るiOSアプリ&バックエンドのサンプル実装をのぞくレイヤー分けをしたアーキテクチャで作るiOSアプリ&バックエンドのサンプル実装をのぞく
レイヤー分けをしたアーキテクチャで作るiOSアプリ&バックエンドのサンプル実装をのぞく
Fumiya Sakai
 
サーバーレスアーキテクチャで悩んでます
サーバーレスアーキテクチャで悩んでますサーバーレスアーキテクチャで悩んでます
サーバーレスアーキテクチャで悩んでます
幸雄 村上
 
iOS6時代のTwitter / Facebook連携
iOS6時代のTwitter / Facebook連携iOS6時代のTwitter / Facebook連携
iOS6時代のTwitter / Facebook連携
Masahiro Murakami
 
Sola勉強会 chef入門 続編
Sola勉強会 chef入門 続編Sola勉強会 chef入門 続編
Sola勉強会 chef入門 続編
Shiojiri Ohhara
 
20120316 designerworkshoppublished
20120316 designerworkshoppublished20120316 designerworkshoppublished
20120316 designerworkshoppublishedYoichiro Sakurai
 
Document based application
Document based applicationDocument based application
Document based application
幸雄 村上
 
iOSアプリを審査に提出してみた話
iOSアプリを審査に提出してみた話iOSアプリを審査に提出してみた話
iOSアプリを審査に提出してみた話
Hideki Abe
 
何故に私達(特に私)はアプリのアニメーションや UI表現に魅了されるのか? そして共存と向き合いを考える
何故に私達(特に私)はアプリのアニメーションや UI表現に魅了されるのか? そして共存と向き合いを考える何故に私達(特に私)はアプリのアニメーションや UI表現に魅了されるのか? そして共存と向き合いを考える
何故に私達(特に私)はアプリのアニメーションや UI表現に魅了されるのか? そして共存と向き合いを考える
Fumiya Sakai
 
SoftLayerオブジェクトストレージと連携サービスPBOXについて
SoftLayerオブジェクトストレージと連携サービスPBOXについてSoftLayerオブジェクトストレージと連携サービスPBOXについて
SoftLayerオブジェクトストレージと連携サービスPBOXについてShuichi Yukimoto
 
SwiftでAndroidアプリ書けるってよ
SwiftでAndroidアプリ書けるってよSwiftでAndroidアプリ書けるってよ
SwiftでAndroidアプリ書けるってよ
Syo Ikeda
 
ゲームの企画書づくりに挑戦
ゲームの企画書づくりに挑戦ゲームの企画書づくりに挑戦
ゲームの企画書づくりに挑戦
幸雄 村上
 
The Bash in Tokyo : AppKitとUIKit
The Bash in Tokyo : AppKitとUIKitThe Bash in Tokyo : AppKitとUIKit
The Bash in Tokyo : AppKitとUIKit
幸雄 村上
 
Xcode7時代のアプリ配布
Xcode7時代のアプリ配布Xcode7時代のアプリ配布
Xcode7時代のアプリ配布
toyship
 
開発中のiOSアプリ紹介 #okamoba
開発中のiOSアプリ紹介 #okamoba開発中のiOSアプリ紹介 #okamoba
開発中のiOSアプリ紹介 #okamoba
ishikawa akira
 

Similar to iOSでライブラリを提供する際に気をつけたいこと (20)

IBM Watson Services for Core ML
IBM Watson Services for Core MLIBM Watson Services for Core ML
IBM Watson Services for Core ML
 
Swiftを迷わず選んだ理由
Swiftを迷わず選んだ理由Swiftを迷わず選んだ理由
Swiftを迷わず選んだ理由
 
SwiftによるiOS開発再入門
SwiftによるiOS開発再入門SwiftによるiOS開発再入門
SwiftによるiOS開発再入門
 
SORACOM UG 関西 | SORACOMと、Sigfoxと、私
SORACOM UG 関西 | SORACOMと、Sigfoxと、私SORACOM UG 関西 | SORACOMと、Sigfoxと、私
SORACOM UG 関西 | SORACOMと、Sigfoxと、私
 
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
 
デザイナー→Webエンジニア→iOSエンジニアと渡り歩いた僕なりのSwiftとの向き合い方と生かす戦略
デザイナー→Webエンジニア→iOSエンジニアと渡り歩いた僕なりのSwiftとの向き合い方と生かす戦略デザイナー→Webエンジニア→iOSエンジニアと渡り歩いた僕なりのSwiftとの向き合い方と生かす戦略
デザイナー→Webエンジニア→iOSエンジニアと渡り歩いた僕なりのSwiftとの向き合い方と生かす戦略
 
レイヤー分けをしたアーキテクチャで作るiOSアプリ&バックエンドのサンプル実装をのぞく
レイヤー分けをしたアーキテクチャで作るiOSアプリ&バックエンドのサンプル実装をのぞくレイヤー分けをしたアーキテクチャで作るiOSアプリ&バックエンドのサンプル実装をのぞく
レイヤー分けをしたアーキテクチャで作るiOSアプリ&バックエンドのサンプル実装をのぞく
 
サーバーレスアーキテクチャで悩んでます
サーバーレスアーキテクチャで悩んでますサーバーレスアーキテクチャで悩んでます
サーバーレスアーキテクチャで悩んでます
 
iOS6時代のTwitter / Facebook連携
iOS6時代のTwitter / Facebook連携iOS6時代のTwitter / Facebook連携
iOS6時代のTwitter / Facebook連携
 
Sola勉強会 chef入門 続編
Sola勉強会 chef入門 続編Sola勉強会 chef入門 続編
Sola勉強会 chef入門 続編
 
20120316 designerworkshoppublished
20120316 designerworkshoppublished20120316 designerworkshoppublished
20120316 designerworkshoppublished
 
Document based application
Document based applicationDocument based application
Document based application
 
iOSアプリを審査に提出してみた話
iOSアプリを審査に提出してみた話iOSアプリを審査に提出してみた話
iOSアプリを審査に提出してみた話
 
何故に私達(特に私)はアプリのアニメーションや UI表現に魅了されるのか? そして共存と向き合いを考える
何故に私達(特に私)はアプリのアニメーションや UI表現に魅了されるのか? そして共存と向き合いを考える何故に私達(特に私)はアプリのアニメーションや UI表現に魅了されるのか? そして共存と向き合いを考える
何故に私達(特に私)はアプリのアニメーションや UI表現に魅了されるのか? そして共存と向き合いを考える
 
SoftLayerオブジェクトストレージと連携サービスPBOXについて
SoftLayerオブジェクトストレージと連携サービスPBOXについてSoftLayerオブジェクトストレージと連携サービスPBOXについて
SoftLayerオブジェクトストレージと連携サービスPBOXについて
 
SwiftでAndroidアプリ書けるってよ
SwiftでAndroidアプリ書けるってよSwiftでAndroidアプリ書けるってよ
SwiftでAndroidアプリ書けるってよ
 
ゲームの企画書づくりに挑戦
ゲームの企画書づくりに挑戦ゲームの企画書づくりに挑戦
ゲームの企画書づくりに挑戦
 
The Bash in Tokyo : AppKitとUIKit
The Bash in Tokyo : AppKitとUIKitThe Bash in Tokyo : AppKitとUIKit
The Bash in Tokyo : AppKitとUIKit
 
Xcode7時代のアプリ配布
Xcode7時代のアプリ配布Xcode7時代のアプリ配布
Xcode7時代のアプリ配布
 
開発中のiOSアプリ紹介 #okamoba
開発中のiOSアプリ紹介 #okamoba開発中のiOSアプリ紹介 #okamoba
開発中のiOSアプリ紹介 #okamoba
 

iOSでライブラリを提供する際に気をつけたいこと