iOS関連のことを調べてみた2020年05月01日

iOS関連のことを調べてみた2020年05月01日
目次

fastlaneで管理している場合にSign In with Appleの権限を追加する

# 結論
fastlane側にコマンドを追記して実行かと思っていたが、Developer Centerで権限を操作してprovisioning profileを再取得するだけだった。。。

# 手順

### 環境
Xcode: 11.1.0
fastlane: 2.145.0

### Xcodeで権限追加
Signing & Capabilitiesで権限を追加

スクリーンショット 2020-05-01 11.38.05.png

### Developer Centerで権限追加
Identifiers > 変更したいものを選択 > Sign In with Appleにチェック

スクリーンショット 2020-05-01 11.40.06.png【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 GoogleMaps

class 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
スクリーンショット 2020-04-26 22.34.59.png【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**」です。

日々のトレーニング記録をカレンダーにメモをするアプリです。
自分の努力の見返すことで「今月は頑張ったな」「先月サボったから頑張ろう」と思う。
継続してトレーニングに取り組めると思い制作しました。

1057 PM.jpegpng.jpeg

元記事を表示

最近の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が表示されるようになります。

IMG_CAB45806F13E-1.jpeg

【エビデンス資料作成】重要性

#はじめに
エビデンス作成しておいてくださいって言われて、あ、またまとめてやらないと、、、
バージョンアップ対応すると色々と画面が崩れてしまう、、、どうしよう、、、超めんどくさい

ってなっている人に色々とアドバイスできるように記事にまとめておきます。

エビデンスとは証拠となる画像などを残すことです。

### エビデンスの意味
お客様に資料を作成して、今このような状態ですよ。
運用の信用を得るためには、必要なことではあります。

様々な意味があるとは思います。

特に、バージョンアップなどを行う際は、変更箇所が多くなり、アプリ全体の画像を取る必要があります。

ではどのようにしていくと良いのでしょうか?

## 手法は以下の通り
・動画で撮る
・画像(スクショで撮る)
・テスターさんに任せる
・テスターの会社に任せる

## マンパワーで、エビデンス作業を行う。

エビデンスを撮るぞと頑張る!!と決めたらひたすら撮ると言う手法がマンパワーですね。
一生懸命、画面の不具合を洗いざらい出す場合には有効かも知れません。
今の現状を知ることができる最終段階として、良いかも知れません

##

元記事を表示

OTHERカテゴリの最新記事