- 1. fastlaneで管理している場合にSign In with Appleの権限を追加する
- 2. 【Swift】プロジェクト作成時に生成されるMain.storyboardを削除する
- 3. エラーを蓄積できる“ResultNel”と数種類のViewから1つを返す型“CoproductView”を作る
- 4. iPhoneアプリ開発が正常に実装できない
- 5. HKHealthStoreのデータ読み取り権限があるかチェックする
- 6. iOSウィジェットにCO2濃度を表示する 【Raspberry Pi × CO2-mini × co2meter】
- 7. 【Swift5】iOSアプリを公開するまでの勉強法について
- 8. ReactNativeの自動linkがiOSだけ動かなくて困った話
- 9. アプリ未経験の大学生が1ヶ月かけてReactNative(Expo)でiOS/Android対応のアプリを作った話
- 10. AdHocでテスト端末を追加登録する方法
- 11. このFat View Controller、あなたはリファクタリングできますか?
- 12. iOSレイアウト入門
- 13. Google Map SDK for iOSを使って現在位置を表示する
- 14. 【Swift】完全初心者が2ヶ月半でアプリをリリースした開発の流れ
- 15. 最近のiOSのTwitterKit…
- 16. 【Xcode】XcodeでViewのFrameをデバッグで表示!! “Show View Frames”が超便利
- 17. はじめてのTableViewController
- 18. AWSMobileClientのpod installがSWIFT_VERSIONのエラーで止まるときの対応
- 19. iOS 13以上のiPhoneで自前のポップオーバー画面とAirPrint画面を表示すると挙動に差異がある理由
- 20. 【エビデンス資料作成】重要性
fastlaneで管理している場合にSign In with Appleの権限を追加する
# 結論
fastlane側にコマンドを追記して実行かと思っていたが、Developer Centerで権限を操作してprovisioning profileを再取得するだけだった。。。# 手順
### 環境
Xcode: 11.1.0
fastlane: 2.145.0### Xcodeで権限追加
Signing & Capabilitiesで権限を追加### Developer Centerで権限追加
Identifiers > 変更したいものを選択 > Sign In with Appleにチェック【Swift】プロジェクト作成時に生成されるMain.storyboardを削除する
# はじめに
**Main.storyboard** を使わずに、
自分で作成した Storyboard から ViewController を生成してルートに設定したい時などで
最初に躓くのが **Main.storyboard** の削除とその後の設定だと思います。その辺りの情報が少なかったので、自分がいつもやっていることをまとめます。
# 環境
Xcode 11.4
Swift5
iOS 13.4# Main.storyboard を削除する
まずは早速 **Main.storyboard** を削除します。
それに加えて **ViewController.swift** も使用しないので削除します。次に新しくルートに設定したい Storyboard と ViewController を作成します。
自分は RootViewController という Storyboard と ViewController を作成しました。ではこのままの状態でビルドして実行してみます。
すると実行はできますが、こんな感じのエラーがでてクラッシュします。“`
Termin
エラーを蓄積できる“ResultNel”と数種類のViewから1つを返す型“CoproductView”を作る
# はじめに
Swift 5からは`Result`という他のプログラム言語では主に`Either`としても知られている型が入った。しかしiOSプログラミングをはじめてみると複数のエラーを同時に集めてきてUIに表示するという必要を感じるようになった。そこで`NonEmptyList`というデータ構造を使ってエラーを複数蓄積できるような`Result`である`ResultNel`を開発した。この記事の前半ではまずこの`ResultNel`について解説する。
またiOSプログラミングではUIの作成が必要になる。UI用のフレームワークである[SwiftUI](https://developer.apple.com/documentation/swiftui)を利用して画面を作る場合、`View`というプロトコルを適合した型の値がたとえばテキストや画像といった1つのUIパーツを表現しており、これを束ねて画面全体を構成していくことになる。SwiftUIはSwift 5.1から入った_Opaque Result Type_を使って返り値の型を「なんらかの`View`」と表現することが多いが、これは
iPhoneアプリ開発が正常に実装できない
swiftによる地図検索アプリケーションを開発中で問題が生じました
下記リンクを参考にしながら、至ってシンプルな地図表示アプリを開発しているのですが、
https://developers.google.com/maps/documentation/ios-sdk/start?hl=ja“`swift
import UIKit
import GoogleMapsclass ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
// Do any additional setup after loading the view.
// Create a GMSCameraPosition that tells the map to display the
// coordi
HKHealthStoreのデータ読み取り権限があるかチェックする
結論から言うと読み取り権限があるかチェックすることはできません。
書き込み権限の有無は[authorizationStatus(for:)](https://developer.apple.com/documentation/healthkit/hkhealthstore/1614154-authorizationstatus)でチェックすることができます。このメソッドのDiscussionに以下の説明がありました。
“`
This method checks the authorization status for saving data.To help prevent possible leaks of sensitive health information, your app cannot determine whether or not a user has granted permission to read data. If you are not given permission, it simply appears as if there is no da
iOSウィジェットにCO2濃度を表示する 【Raspberry Pi × CO2-mini × co2meter】
WFH、捗ってますでしょうか。
我が家の場合、机やモニターなど家で仕事をするのに十分な設備は元々整っていたのですが、たったひとつだけオフィスにはあって自宅にないものがありました。
CO2モニターです。
## 成果物
パッと目につくところに表示させたかったので、iOSのウィジェットに置くことにしました。
最終的にこんな感じでCO2濃度、ついでに室温が見えるようになりました。### iPhone
### iPad
【Swift5】iOSアプリを公開するまでの勉強法について#はじめに
この記事では、プログラミング初心者な僕がAppStoreにアプリを公開し、月137円稼ぐまでの勉強法を書きたいと思う。#Swiftの勉強法は2択
Swifrの勉強法は、以下の2択です。
– プログラミングスクール(オンライン)に通って瞬殺でSwiftマスターになるか
– 参考書をたくさん買ってじっくり時間をかけてSwiftマスターになるか##プログラミングスクール
現在のプログラミングスクールでは、自分のオリジナルアプリをAppStoreに公開するまで付き添ってくれるらしい。
[iOS開発オススメのプログラミングスクール](https://satoriku.com/programming-school/)##参考書
僕は、参考書でじっくり時間をかけてSwiftマスターになる方法を選んだ。###1.ひたすら手を動かす(2019年10月~)
まずは、超初心者のための参考書をたくさん買ってひたすら手を動かした。ここで気をつけなければならないのは、購入する参考書のバージョンだ。
Swift、Xcodeのバージョン変更は、割と頻繁に行われており、現在のバージョ
ReactNativeの自動linkがiOSだけ動かなくて困った話
# 初めに
ReactNativeを0.5xから0.6xにアップデートした際、0.60.0から導入されたライブラリの自動リンク機能がiOSだけ動かなくて困っていた。仕方ないので、
`一旦手動でlink → iOSの差分だけコミット`
としていたのだがさすがに面倒なのでちゃんとした対策は無いものか、と思って調べたらちゃんとあった。# やったこと
`reactnative auto link not working` でググったら、react-native-fsというライブラリの ↓ というissueのコメントが見つかった。
https://github.com/itinance/react-native-fs/issues/708#issuecomment-559785244これに従い、Podfileに `use_native_modules!` の一文を加えたら直った。
https://react-native-community.github.io/upgrade-helper/?from=0.59.9&to=0.61.5↑ の差分を見て、手で必要な分だけ導入してい
アプリ未経験の大学生が1ヶ月かけてReactNative(Expo)でiOS/Android対応のアプリを作った話
先日、「ワセフリ」というアプリをリリースしました。開発期間は約1ヶ月。ReactNativeを使って、iOS/Android両対応しています。
先日、学生が教科書などを交換や売買できるようなフリマアプリ、「ワセフリ」をリリースしました!
開発に着手したのが2020年の3月19日。正式にリリースしたのが4/19日ということで、**まあ大体4週間かかったかな、という感じです。**
言い訳がましいのですが、平日はほぼフルコミットでエンジニアのインターンとして働いてい
AdHocでテスト端末を追加登録する方法
後からテスト端末を追加することはよくある話だと思うのですが、一発でできなかったので手順をメモしておきます
XcodeはVersion11.4.1です## デバイスの登録
Apple Developer上で
・「Certificates,IDs&Profiles」>「Devices」より端末を登録
・「Certificates,IDs&Profiles」>「Profiles」よりAdHoc用のProfileをEditし、登録した端末を追加## プロファイルの再読み込み
Xcode上で
・「Xcode」>「Preferences」から「Accounts」を開く
・「Download Manual Profiles」を押下
![スクリーンショット.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/165658/4b67104b-0d76-83ce-8a3c-ebf2b400be90.png)
これでプロファイルが再読み込みされたので、「Product」>「Archive」でIPAファイルを新しく作成して終
このFat View Controller、あなたはリファクタリングできますか?
![screenshot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/47085/f252954e-5969-fe5a-0873-ecfad88f15ca.png)
iOS アプリ開発において、 Fat View Controller はよく知られたアンチパターンです。 iOS アプリ開発では View Controller が大元にあるので、 View Controller になんでもかんでも実装していると、どんどん View Controller が肥大化してしまいます。
Fat View Controller には、たとえば次のような問題があります。
– UI とロジックが分離されておらずテストしづらい。
– コードの見通しが悪く、可読性が悪い。
– 状態管理が複雑になり、修正時の影響範囲を見通しづらい。
– みんなで同じファイルを触ることになり、コンフリクトが起こりやすい。そんな Fat View Controller との戦い方の知見を共有し合うために、[たくさんのiOSエンジニア
iOSレイアウト入門
#はじめに
某プログラミング学習サイトの学習記録を記します。#共通事項など
・Command 0 で左ペインの表示/非表示を切換え
・Preview画面でダブルクリックすると倍率が自動調整。ピンチで手動調整。
・右ペイン:インスペクターペイン
・
#No1
・XcodeではAuto LayoutやTraitが用意されており、複数の画面サイズに対応したアプリのレイアウト作成が可能である。
・Xcodeで新しいアプリを作成する
・Single View App
・Devices:Universal#No2
・main.storyboardを選択して左ペインは非表示にする
・右ペイン(ユーティリティエリア)の下記二つにチェックが入っていることを確認
・Use Auto Layout
・Use Trait Variations
・Editor > Previewでプレビュー表示する
・左下の[+]からiPadを追加してiPhoneとiPadの両方を表示させる#No3
・Viewなどの部品を追加した後、画面下の「Add New Alighment Constraints」や
Google Map SDK for iOSを使って現在位置を表示する
# はじめに
GoogleMap SDK for iOSを利用して現在地をアプリ上に表示する方法については、[公式ドキュメント](https://developers.google.com/maps/documentation/ios-sdk/current-place-tutorial)を含めいくつか[記事](https://qiita.com/koogawa/items/adc2dd19015586bda39b)が存在しますが、どれもなぜかうまく動かなかったので、私の環境(Swift5・xcode11)で動いたコードを共有します。なおコード全体は[こちら](https://github.com/MasatoraAtarashi/googlemap-sample-ios)で見れます。
# SDKをインストール
“`ruby:Podfile
source ‘https://github.com/CocoaPods/Specs.git’
target ‘YOUR_APPLICATION_TARGET_NAME_HERE’ do
pod ‘GoogleMaps’
p
【Swift】完全初心者が2ヶ月半でアプリをリリースした開発の流れ
#対象者
・Swift初心者の方
・iOSアプリ開発に挑戦したいと思っている方#はじめに
サービス業の仕事をしているプログラミング完全初心者の私が**2ヶ月半**でAppStoreにリリースすることができました。
これからiOSアプリを開発に挑戦したいという人の参考になればと思いリリースまでの流れ、大変だった点をまとめました。#アプリ紹介
私が開発したのは筋トレ記録アプリ「**Workout Manager**」です。
日々のトレーニング記録をカレンダーにメモをするアプリです。
自分の努力の見返すことで「今月は頑張ったな」「先月サボったから頑張ろう」と思う。
継続してトレーニングに取り組めると思い制作しました。
最近のiOSのTwitterKit…
最近は、公式TwitterKitを使ってる人は、もう少ないでしょう。
https://github.com/twitter-archive/twitter-kit-ios既存アプリのメンテナンスのためにTwitterKitをいじったので雑感など。
(結局のところアプリから削除しましたが)—
TwitterKitを利用したアプリをアップデートすると二点問題がありまして、1.UIWebViewが使われているため、今後アップデートできなくなる
https://ryukasublog.com/uiwebview-deprecated/
【iOS】UIWebViewのDeprecated対応期限は既存アプリは2020年12月まで、新規アプリは2020年4月まで2.TwitterKitが位置情報を含むので位置情報を使うセキュリティの設定をしなくてはならなくなった。
位置情報は使ってないので今まで通りにApp store connectにアーカイブをsubmitすると以下のエラーになります。– Your app’s code references one or more A
【Xcode】XcodeでViewのFrameをデバッグで表示!! “Show View Frames”が超便利
## XcodeのDebugタブにあるShow View Frames
以下をクリックすると、、、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/261934/d242d8f8-ded5-807f-2a86-5b9f74d5364c.png)下記の画像、動画のように各コンポーネントのframeが表示されるようになります。
xcodeにframe表示させる機能あるの知らなかった、、、
いつからあったの、、、 はじめてのTableViewController
##はじめに
これまでTableViewControllerを雰囲気で扱ってきたので自分用にまとめます。
手順に飛躍がないよう心がけています。##Storyboradから作成(直感的でわかりやすい)
ほとんど画像の通りです。
これで実行すると、画面いっぱいにセルが広がっているのではないでしょうか。
AWSMobileClientのpod installがSWIFT_VERSIONのエラーで止まるときの対応
# AWSMobileClientがインストールできない
新しくiOSアプリを作る場合にはまずあり得ないと思いますが、古いアプリの改修などの場合はコードが全てObjective-Cで書かれているケースも珍しくないと思います。今回、そういうケースでAWSMobileClientがインストールできないという現象に遭遇したので記録しておきます。
## つまり、どういうことかというと
* Objective-Cだけで書かれたiOSアプリにAWSMobileClientをpod installしようとすると失敗します。
* Bridging Headerを生成してあげましょう。
* ダミーのSwiftファイルを作成するだけで、Xcodeが自動生成してくれます。—
以下、詳細です。
## 発生した現象
Cocoapodsを使ってAWSMobileClientをインストールしようとすると*Unable to determine Swift version*エラーになる。
### Podfile
“`sh
$ cat Podfile
# Uncomment the nextiOS 13以上のiPhoneで自前のポップオーバー画面とAirPrint画面を表示すると挙動に差異がある理由
iOS 13以上のiPhoneから、ポップオーバー画面のデフォルトのスタイルが、全画面表示から疑似全画面表示(公式な名称が見つけられなかったので、仮でこのように読んでおく)に変更されている
それらの具体的な違いは以下の通りである
| 挙動 | 全画面表示(~iOS 12) | 疑似全画面表示(iOS 13~) |
|:–|:–|:–|
| 表示サイズ | 全画面表示 | 上部に隙間が空いた状態でほぼ全画面表示 |
| 閉じ方 | アプリ側で制御のみ | アプリ側で制御、あるいは、**ユーザーが画面全体を下にスワイプ** |この際、自前で用意したポップオーバーと、OSが用意してくれているプリント画面では微妙に表示に差異があったため、その理由と差異をなくす方法をメモしておく
# 差異の詳細
以下のような、自作ポップオーバー画面を表示するボタンと、プリント画面を表示するボタンを持つサンプルアプリで挙動を確認する
“`ViewController.swift
import UIKit
import WebKitclass ViewController: UIViewC
【エビデンス資料作成】重要性
#はじめに
エビデンス作成しておいてくださいって言われて、あ、またまとめてやらないと、、、
バージョンアップ対応すると色々と画面が崩れてしまう、、、どうしよう、、、超めんどくさいってなっている人に色々とアドバイスできるように記事にまとめておきます。
エビデンスとは証拠となる画像などを残すことです。
### エビデンスの意味
お客様に資料を作成して、今このような状態ですよ。
運用の信用を得るためには、必要なことではあります。様々な意味があるとは思います。
特に、バージョンアップなどを行う際は、変更箇所が多くなり、アプリ全体の画像を取る必要があります。
ではどのようにしていくと良いのでしょうか?
## 手法は以下の通り
・動画で撮る
・画像(スクショで撮る)
・テスターさんに任せる
・テスターの会社に任せる## マンパワーで、エビデンス作業を行う。
エビデンスを撮るぞと頑張る!!と決めたらひたすら撮ると言う手法がマンパワーですね。
一生懸命、画面の不具合を洗いざらい出す場合には有効かも知れません。
今の現状を知ることができる最終段階として、良いかも知れません##