- 1. リモートMTGなどでスマホの画面を共有する方法(iOS: Zoom、Android: AirMore)
- 2. iOS13においてFirebaseのPUSH通知が上手く動かない?
- 3. iOS13.3.1の環境で実機テストするとLibrary not loaded が表示される件について
- 4. 【iOS】FirebaseのFriendly-Chatチュートリアルの pod install でエラーが出るとき
- 5. 歴代iPhoneの販売開始年/初期搭載iOS ver./最終iOS ver
- 6. スマホ向けセカンドスクリーンという新セグメント
- 7. 【Swift】Navigation Controllerをコードで実装する
- 8. SwiftUIのViewは自分のサイズを自分で決めます
- 9. Carthageを使用したQuick導入でトラブった話(platform ios指定でビルドできない問題)
- 10. web3swift を使って iOS アプリから Ethereum につないでみるテスト
- 11. BitriseからFirebase App Distributionを使ってiOS・Androidアプリを配布する(Fastlaneを利用しない方法)
- 12. 【Flutter】アプリ開発_初心者のアプリをプロっぽくする最強のpackageを紹介
- 13. iOSの各種ログ収集方法におけるOSLog等のログ出力関数によるログの可視性調査
- 14. iOS アプリのテストカバレッジ周りでクラッシュしたメモ
- 15. AppStoreをスクレイピングしてレーティングをSlackへ定期通知する
- 16. iPhoneショートカットアプリのメディア音量変数が取得できない
- 17. iOS 13.3.1 dyld: Library not loaded の私的回避法
- 18. UIImageViewのdraw(_ rect: Rect)は呼ばれない
- 19. FlutterとFirebaseで開発した 英語の瞬間翻訳トレーニングアプリ Lala の技術
- 20. エンジニアがデザインを正確に確認する方法
リモートMTGなどでスマホの画面を共有する方法(iOS: Zoom、Android: AirMore)
# iOS
[Zoom](https://zoom.us/jp-jp/meetings.html) を利用します。#### 0. [Zoom](https://zoom.us/jp-jp/meetings.html) を利用できるようにする
[Zoom](https://zoom.us/jp-jp/meetings.html) を利用するためにはサインアップが必要です。
[プランがいくつか](https://zoom.us/pricing)ありますが無料プランでも充分だと思います。サインアップしたら[コチラのページ](https://zoom.us/download#client_4meeting)から「ミーティング用Zoomクライアント」をダウンロードしインストールします。
インストールが終わったらアプリケーションを起動してミーティングを開始します。(ここらへんの手順は省きます。)
以下ミーティング開始後からスマホを画面共有するまでの手順です。
#### 1. ミーディング画面の「画面を共有」をクリック
iOS13においてFirebaseのPUSH通知が上手く動かない?もしかすると、公式ドキュメントがおかしい(?)かもしれません。
“` swift
# https://firebase.google.com/docs/cloud-messaging/ios/client#method_swizzling_in_firebase_messaging
if #available(iOS 10.0, *) {
// For iOS 10 display notification (sent via APNS)
UNUserNotificationCenter.current().delegate = selflet authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
UNUserNotificationCenter.current().requestAuthorization(
options: authOptions,
completionHandler: {_, _ in })
} else {
let settings: UIUser
iOS13.3.1の環境で実機テストするとLibrary not loaded が表示される件について
こんにちは。
先日、外部フレームワークを使ったアプリで実機テストしようとしたら、真っ黒な画面になってしまい、少々ハマってしまったので記事を書きます。
同じことが起きてる人がいたら参考にして欲しいです。# 環境
Xcode11.3.1
iOS(実機)13.3.1# 解決すべき問題
Firebaseなどの外部ライブラリをCocoaPodsで導入したアプリを実機にインストールすると、「Library not loaded」となって、画面が真っ黒くなるという問題。なお、シュミレーターでは普通に動く。# 原因
iOS13.3.1から、Appleは無料のアカウントで外部フレームワークを使用することをブロックしたらしいです、、、
僕は試してないんですが、有料版にアップグレードすると動くらしいです。# 解決するためにやったこと
とりあえずエラーをコピペして検索してみた。そしたら、上の原因に書いたことが影響しているってことは分かったのですが、じゃあ1万円払って有料のデベロッパーアカウントを作成するのもなんか悔しい。それで色々調べた結果、無料アカウントでも外部フレームワーク使える方法が
【iOS】FirebaseのFriendly-Chatチュートリアルの pod install でエラーが出るとき
FirebaseのCodelabでのチュートリアル Friendly Chat で pod install でエラーが出るのは、Podfileが古いからのようだった。
https://codelabs.developers.google.com/codelabs/firebase-ios-swift/?hl=ja#2“`
Pod::StandardError – [Bug] Failed to find known source with the URL “trunk”[!] Oh no, an error occurred.
“`一度、Podfile, Podfile.lockを削除して、そのディレクトリで`pod init`し、そこに元の情報を正しくコピペしてやると成功した。
歴代iPhoneの販売開始年/初期搭載iOS ver./最終iOS ver
iOSアプリの最小iOSバージョンを検討するために一覧化しています。
| iPhone | 販売開始年 | 初期搭載 iOS ver. | 最終 iOS ver. |
|:–|:-:|:-:|:-:|
| [iPhone 11 Pro/11 Pro Max](https://ja.wikipedia.org/wiki/IPhone_11_Pro/11_Pro_Max) | 2019 | 13 | _未発表_ |
| [iPhone 11](https://ja.wikipedia.org/wiki/IPhone_11) | 2019 | 13 | _未発表_ |
| [iPhone XR](https://ja.wikipedia.org/wiki/IPhone_XR) | 2018 | 12 | _未発表_ |
| [iPhone XS/XS Max](https://ja.wikipedia.org/wiki/IPhone_XS) | 2018 | 12 | _未発表_ |
| [iPhone X](https://ja.wikipedia.org/wiki/IPhone_X)
スマホ向けセカンドスクリーンという新セグメント
![RoshScreen.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/19772/7e9dd1ef-576f-aa33-8fd5-e2fd1a0b8908.png)
【Swift】Navigation Controllerをコードで実装する
Storyboardでいうところの、以下のようなNavigation Controllerをコードで実装する方法をご紹介します
![スクリーンショット 2020-03-05 10.09.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/332663/9bef8080-2b6d-8707-a59f-2baedac1cdcb.png)
まず、UINavigationControllerを継承したクラスを作成します
“` NavigationController.swift
class NavigationController: UINavigationController {override func viewDidLoad() {
super.viewDidLoad()}
}“`
AppDelegateに以下のように記述します
“` AppDelegate.swift
class AppDelegate: UIResponder,
SwiftUIのViewは自分のサイズを自分で決めます
“`text
もと(英語)→外国人なので日本語がおかしいところがあれば是非教えてください。
“`SwiftUIの紹介記事などでだいたい最初に書かれるのは「ビューは自分で自分のサイズを決め、一回決められたサイズは上書きできません」とのことですが、こんな簡単そうなことでも以外と複雑な闇を隠しています。なぜならその簡単そうな宣言が我らの知っているレイアウトについての全ての常識を変えるのです。
SwiftUIはUIKitやAppKitの考え方とは違いますしメリットとデメリットもありますので時間をかけてちゃんと勉強する価値はあると思います。なのでこの記事ではたくさんのレイアウトの土台になるビューの2つ(ImageとText)を見ながら宣言の深い意味を考えてみましょう。
## Images
まず画像を表示しましょう:
“`swift
struct ContentView : View {
var body: some View {
I
Carthageを使用したQuick導入でトラブった話(platform ios指定でビルドできない問題)
# はじめに
自分が最近触り始めたプロダクトで謎の設定によりビルドが成功してたのが、自分が触り始めて失敗するようになったので原因を調査した時のメモになります。# 先に結論
気が早い人向けに事象と解決策を先に記載します。* 事象:Bitrise上で`carthage update/bootstrap –platform ios`を実行するとQuickのビルドで失敗する
* 解決策1:–platform iosを外す(苦肉の回避策)
* 解決策2:Quickはcarthageからpodsに切り替える# Carthageを使用したQuickの導入方法
導入方法については[公式のGitHub](https://github.com/Quick/Quick/blob/master/Documentation/en-us/InstallingQuick.md)上にて説明がある通りですが、ここで軽く説明しておきます。* Cartfile.privateにQuickを追加する(github “Quick/Quick”、github “Quick/Nimble”)
* carthag
web3swift を使って iOS アプリから Ethereum につないでみるテスト
iOS アプリからイーサリアムにつないでテストするまでの簡単な手順をまとめてみました。
イーサリアムクライアントとして、[**web3swift(matter-labs)**](https://github.com/matter-labs/web3swift) を利用しています。「ややこしい話は抜きだ!」という方は、[**GitHub**](https://github.com/hakumai-iida/StudyWeb3Swift) に手順後のプロジェクトが置いてあるのでお使いくださいませ。
では、ちゃっちゃといきましょう。
# プロジェクトの作成
**Xcode** を起動して **Create a new Xcode project** から新規プロジェクトを作成します。
![ss000.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/596438/ade56825-78ec-ed29-7acb-ab86d86d3320.png)このアプリは画面タップでテストを実行させたいので、タッ
BitriseからFirebase App Distributionを使ってiOS・Androidアプリを配布する(Fastlaneを利用しない方法)
# 概要
Bitriseから[Firebase App Distribution](https://firebase.google.com/docs/app-distribution?hl=ja) を利用してみたので手順と所感をメモします。
※最近リリースされた、BitriseのWorkflowで利用できるFirebase App Distribution Stepを利用しています。## 環境
利用ツール
– Bitrise
– Firebase App Distribution最近Firebase App Distribution Stepがリリースされたことを受け、Fastlane等は用いずにFirebase App Distributionと連携しています。
尚、プロジェクトにBitrise、Firebaseが導入されている前提で書いているため、各ツールの導入方法については言及していません。## Firebase App Distributionの準備
Firebase App Distributionの公式Docは[こちら](https://firebase.g
【Flutter】アプリ開発_初心者のアプリをプロっぽくする最強のpackageを紹介
# はじめに
2020年の元旦からFlutterの勉強を開始し、無事2ヶ月で見た目がそれなりのアプリを作ることができるようになりました。これは、すんごい方々が作ったパッケージを使用したおかげです。今回、私が使ったパッケージ・使わなかったけど、いいと思ったパッケージをまとめていきたいと思います。初心者がそれなりの物を短時間で作るにはすんごい方々が作ったすんごいパッケージをどれだけ知っているか、そしてそれをいかに組み合わせられるかが重要だと思います。下記が私が紹介するパッケージで作ったアプリです。もし、インストールしていただけたら嬉しいです。評価してくださると泣いて喜びます。私のアプリ見ながらだと、よりどこに該当のパッケージが使われているかわかりやすいかと思います。
iOSの各種ログ収集方法におけるOSLog等のログ出力関数によるログの可視性調査iOS 10から「Unified logging system」というログシステムが導入されていて、ログレベルや変数のプライバシー設定など様々な機能があるため、実際に活用するにあたり詳しい挙動を確認したかったため、その調査結果をメモしておく
# 調査環境
– Xcode 11.3.1
– iOS 13.3# 調査内容
## ログの種類
`OSLog`に関しては5つのログレベルがあるため、従来のログ出力関数である`print`・`NSLog`と合わせて7種類を比較・調査する“`swift
import os.logfunc outputVariousLogs() {
os_log(“Log test: OSLog / Info”, type: .info)
os_log(“Log test: OSLog / Debug”, type: .debug)
os_log(“Log test: OSLog / Default”, type: .default)
os_log(“Log test: OSLog / Error”, type: .err
iOS アプリのテストカバレッジ周りでクラッシュしたメモ
特に役に立たない気もするが、自分がハマったところのメモ。
# 起こったこと
シミュレータ上で実行するようにして iOS アプリのユニットテストを実行すると 「EXC_BAD_ACCESS (code=EXC_I386_GPFLT)」 ってエラーでクラッシュが発生した。
![スクリーンショット 2019-12-18 21.31.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/5721/f87b133c-0b8f-9612-711d-3750ba51e271.png)
# 調査メモ
* スタックトレースによると `__llvm_gcov_writeout` ってあるので、カバレッジに関係してそう
* 似たような現象として同僚が見つけてくれたページ :
* [Crash when running unit test target using XCode 7 – Stack Overflow](https://stackoverflow.com/questions/32803264/cr
AppStoreをスクレイピングしてレーティングをSlackへ定期通知する
## 前述
公開しているアプリのレーティングの変化に気づけないため、AppStoreのWebサイトをスクレイピングしてレーティングを取り出しSlackへ通知することにしました## 実装
### Google スプレッドシートを作成し、ツール > スクリプト エディタを選択### スクリプト エディタでコーディング
iPhoneショートカットアプリのメディア音量変数が取得できない
結論:メディア音量変数は相変わらず取得できないが、
ShortcutsGalleryというコミュニティサイトにある、
良い感じのショートカットを流用して、目的を達成できる!iPhone SE:iOS13.3.1
スマホのアプリばり増えたなあ。って整理をしていたら、
ショートカットという見覚えのない子がそこにいた。これは何だとイジリにイジっていたら、思いの外楽しい。
子供向けのプログラミングスクールで使われる(scratchだっけ?)ような、
図形を動かしてプログラミングを組み立てるようなアプリ。ショートカットが何ぞやと言う話は他の人に任せておくとして、
(というよりqiita初投稿なので長々と根気強く記事を作成できないのです。許せサスケ)
今回は僕がつまずきにつまずきまくって苦しめられた、
”メディア“”再生“における「音量を設定」アクションの変数についてお話しする。結論は冒頭で述べたとおり、現在20200303時点では、
0から1までの変数を設定することができないし、
”Volume“という変数名で設定
iOS 13.3.1 dyld: Library not loaded の私的回避法
iosでchartsを使いたくなったので、cocoapodsでインストールするも、実機テストで
`code signature invalid for “path/to/charts.framework”`
とかのエラーが出て動作しなかったので、
https://github.com/Alamofire/Alamofire/issues/3051
あたりを参考にして、
Podfileの
`use_frameworks!`
を
`#use_frameworks!
use_modular_headers!`
に書き換えると、今のところうまく動作するようです。
フリーの開発アカウント使ってると起きるようですね。>”Apple blocked utilizing external frameworks on free accounts with 13.3.1 upgrade. Try downgrading to 13.3.”
>https://stackoverflo
UIImageViewのdraw(_ rect: Rect)は呼ばれない
`UIImageView` を丸くしたくて
“`swift
myImageView.layer.cornerRadius = myImageView.frame.width * 0.5
myImageView.layer.masksToBounds = true
“`をいろんなところに書いている。
CircleImageViewみたいなUIImageViewのサブクラスを作って`draw`メソッドをオーバーライドすれば共通化できるんじゃないかと考えて以下のようなクラスを作ってみた。
“`swift
import UIKit@IBDesignable class CircleImageView: UIImageView {
override func draw(_ rect: CGRect) {
layer.cornerRadius = rect.size.width * 0.5
clipsToBounds = true
}
}
“`が、丸くならない…
調べてみると[UIImageViewのdrawRectメソ
FlutterとFirebaseで開発した 英語の瞬間翻訳トレーニングアプリ Lala の技術
どうも、[shohei](https://twitter.com/hobbydevelop)です。
大阪在住のフリーランスエンジニアです。現在はFlutterやReact Nativeを使ってプロダクト開発をしています。
今回はFlutterとFirebaseで開発した英語の瞬間翻訳トレーニングアプリ Lala の技術を紹介します。
アプリはこちらからダウンロードできます(無料でご利用できます)。
[![icon_android_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/183031/5f7ae68c-c65b-6b01-b8d0-12010608b38d.png)](https://apps.apple.com/jp/app/%E8%8B%B1%E8%AA%9E%E3%81%AE%E7%9E%AC%E9%96%93%E7%BF%BB%E8%A8%B3%E3%83%88%E3%83%AC%E3%83%BC%E3%83%8B%E3%83%B3%E3%82%B0-lala/id149369
エンジニアがデザインを正確に確認する方法
# 背景
自分はiOSのエンジニアである。UI周りの実装を行うときには、デザイナーからデザインデータをもらい、デザインツールでMarginやFontなどを確認しながらデザイン通りに実装を行う。実装が終わったら自分で再度デザインが間違っていないかを確認して、最後にデザイナーに確認してもらう。
しかし、デザイナーの確認のときに高い確率で「元のデザインとここが違うよ〜」ってデザイナーから指摘を受けて修正を行うことが多い。
例えば、「LabelのTextのlign-heightが違う」や「アイコンのbaseLineが少しずれている」などである。デザインデータは細かく見ているつもりだが、見落としてしまうことがある。。。
何度もデザイン確認を行っていたら、実装とデザイナーの時間が勿体ない。
## 書くこと
**エンジニアがデザインを正確に確認する方法について**# 方法
**デザインデータと実装したスクリーンショットを合わせて、違いがないかを確認する!!**## 例
赤色の枠のCellを実装する。([元データ – figmaresources](https://www.figm