- 1. Unity Remote 5 が動かない(windows、ios)
- 2. Fastlaneを使わずにiOSアプリのビルド・配信を行う
- 3. LiveViewNative で簡単 iOS ネイティブアプリ -?チュートリアルを動かす?⬛-
- 4. SwiftUIでマッチングアプリ風の左右スワイプのサンプル作成
- 5. 【Swift】アプリ名を取得する
- 6. 【Swift】URLRequestのHttpMethodをenumで設定する
- 7. 【SwiftUI】画像にカラーフィルター
- 8. 【Swift】Firebase Authで初回ログインか判定する
- 9. Tips to Build a Great iOS App User Interface
- 10. visionOSのUIをiOSで試してみる
- 11. 【Xcode】Invalid App Store Icon. The App Store Icon in the asset catalog in ‘RedSheetCamera.app’ can’t be transparent nor contain an alpha channelでアップロードできない
- 12. 【Xcode】シュミレーターのタップを可視化する
- 13. 【SwiftUI】TikTok風アニメーションの作り方
- 14. SwiftUI Stepperの実装方法
- 15. 【SwiftUI】onChangeで2つの値を監視する
- 16. SF Symbolsを使う時の注意点?
- 17. 【iOS15.0+】SwiftUI.Textでリンク付きテキストを実装する
- 18. 【個人開発】【iOS】積み上げ記録を残せるアプリをリリース
- 19. 【Swift】引数にある謎の`&`について
- 20. 【SwiftUI】onChangeの古い値を取る方法
Unity Remote 5 が動かない(windows、ios)
Unity Remote 5 が動かない時の原因メモ
1.iosにswitch platformしてない
2.itunesがpcにインストールされていない
3.USBがつながってない上が確認できても、つながらない場合は、ひたすらUnity Remote を立ち上げなおしたりすると、いつかつながる。
Fastlaneを使わずにiOSアプリのビルド・配信を行う
# はじめに
iOSアプリのビルドやApp Store Connectへの配信を自動化する際には、Fastlaneを利用するケースが多いかと思います。Fastlaneは大変便利なツールですが、Rubyを導入したりBundlerでバージョンを管理したりと環境構築が少し面倒と感じる事があるかと思います。
そこで、本記事ではFastlaneを使わずにXcodeに付随する`xcodebuild`コマンドだけでiOSアプリのビルド・配信を行う方法を説明します。
## 環境
– Xcode14.3.1 (14E300c)
## 手順
### 1. Releaseビルドの署名設定をAutomaticにする
本記事ではXcode13から導入されたcloud signingを利用するため、Releaseビルドの署名設定を「Automatically manage signing」に設定してください。
※cloud signing については、[こちら]()の記事を参考にしてください。![スクリーンショット 2023-07-19 21.42.22.png](https://qiita-
LiveViewNative で簡単 iOS ネイティブアプリ -?チュートリアルを動かす?⬛-
## はじめに
LiveViewNative は Elixir で iOS や Android のモバイルアプリが作れてしまう素晴らしいフレームワークです
https://github.com/liveview-native/live_view_native
@the_haigo さんが以前の記事で紹介してくれています
https://qiita.com/the_haigo/items/1936319bad327d14ad7b
同じようなものとして Elixir Desktop があります
https://github.com/elixir-desktop/desktop
LiveViewNative と Elixir Desktop の違いについては上記記事を参照してください
Elixir Desktop も @the_haigo さんがアプリの開発手順を紹介してくれています
https://qiita.com/the_haigo/items/17a89b5038a7f337b102
## LiveViewNative とは
LiveViewNative では
SwiftUIでマッチングアプリ風の左右スワイプのサンプル作成
## この記事を書こうと思ったきっかけ
・SwiftUIで自作しているアプリで表題の機能を追加してみたいと思った。
・SwiftUIの画面について学習がしたかった。## 今回作成するサンプル
・カードは合計五枚あり左右どちらかにスワイプすると次のカードを表示する
・スワイプされるとどちらにスワイプされたかprintする## 1.変数を定義する
下記コードで変数を定義しております。
cardOffset: CGFloat = 0は後述しますが
現在のカードの基準の位置になります。
こちらの値が変化することでスワイプ判定となります。
“`swift
struct ContentView: View {
let cardSize = CGSize(width: 300, height: 400)
let cardCount = 5
@State private var currentIndex = 0
//カードが表示されているかどうかを示すBool値
@State private var isCardVisible = true
【Swift】アプリ名を取得する
# はじめに
「Dispaly Name」でアプリ名を指定できます。
今回はここの「Display Name」をコードで取得します。
![スクリーンショット 2023-07-19 19.54.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/7155ba88-25cc-dac2-b366-b4de154137aa.png)# 実装
“`swift
import SwiftUIstruct ContentView: View {
private let appName = Bundle.main.object(forInfoDictionaryKey: “CFBundleDisplayName”) as? String
var body: some View {
Text(appName ?? “???”)
}
}
“`取得できました
![simulator_screenshot_ABDFFF2B-AA05-411B-913F-A2
【Swift】URLRequestのHttpMethodをenumで設定する
`URLReqeust`のHttpMethodは、なぜか`enum`ではなく`String`で設定する仕様になっている。
なんか気持ち悪いので **`extension`** 作りました## Before
POSTリクエストを作りたい場合、こうやって記述する。
“`swift
let url = URL(string: “https://hoge.com”)!
var urlRequest = URLRequest(url: url)
urlRequest.httpMethod = “POST”
“`
なぜこんな仕様にした・・・?## いざextension
`URLRequest`をextensionしてenum`HttpMethod`とメソッド`httpMethod`を定義する“`swift
import Foundationextension URLRequest {
enum HttpMethod: String {
case GET
case POST
case PATCH
case
【SwiftUI】画像にカラーフィルター
# はじめに
SwiftUIの`colorMultiply`という機能でカラーフィルター的なことができたので記事にしておきます# サンプルアプリ
![Simulator Screen Recording – iPhone 14 Pro – 2023-07-18 at 22.02.28.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/e312c132-8636-9ff1-68b1-efd4c410e041.gif)# 実装
“`swift
import SwiftUIstruct ContentView: View {
@State private var color: Color = .redvar body: some View {
VStack(spacing: 50) {
Image(“sample”)
.resizable()
.aspe
【Swift】Firebase Authで初回ログインか判定する
# はじめに
Firebase Authenticationでユーザがログインした際、初回登録時のみFirestoreにユーザ情報を追加するという処理を実現したいと考えました。
そこで、ログインしたユーザが新規登録かどうか判定する必要がありました。
# コード
“`swift
let authResult = try await Auth.auth().signInAnonymously()
print(authResult.additionalUserInfo?.isNewUser)
“`
`AdditionalUserInfo`の`isNewUser`で初回ログインかどうか判定することができます。
エラー処理などは省いています。
Tips to Build a Great iOS App User Interface
When you want to build a solid iOS app, it is vital to take care of the user interface. Although you can build an iOS app without focusing on the user interface, more than 50% of users abandon an app if the user interface is not up to the mark. So, how do you build a great user interface for your iOS app? Here are the top iOS user interface tips for building a revolutionary app design consulted by top iOS app designing agencies globally.
## The formatting of content shall be strategic
The layo
visionOSのUIをiOSで試してみる
# はじめに
Appleは、iOSやmacOSなどのApple製品のUIをFigmaで公開しています。その中には、WWDC2023で発表されたばかりのvisionOSのUIもあります。この記事では、「visionOSのUIをiOSで再現するとどうなるのか」という実験をこのFigmaファイルを参考にやってみます。https://www.figma.com/community/file/1253443272911187215
# ツールバーボタン
visionOSのツールバーボタンは、視線移動により操作がしやすいように大きくなっています。このボタンをiOSで再現すると、このようになりました。![IMG_CCAED4CB4968-1.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2366249/4df403a9-52ef-98fe-0b77-98c78db6bda1.jpeg)
少し視認性は低いものの、意外と悪くないですね。ボタンをあまり目立たせず控えめなデザインにしたいときには良いかも知れませ
【Xcode】Invalid App Store Icon. The App Store Icon in the asset catalog in ‘RedSheetCamera.app’ can’t be transparent nor contain an alpha channelでアップロードできない
# はじめに
アイコンが原因でAppStoreConnectにアップロードできない現象にハマりました。# エラー
“`
Invalid App Store Icon. The App Store Icon in the asset catalog in ‘RedSheetCamera.app’ can’t be transparent nor contain an alpha channel.
“`![スクリーンショット 2023-07-17 19.04.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/1ba11093-d71a-7303-bedf-4663a4467a59.png)
# 原因
透過画像を使っている or アルファチャンネルが含まれているこのどちらからしいです
透過画像ではないのでアルファチャンネルが含まれている可能性が高いです。# 確認方法
① アイコンを右クリックします
② 「情報を見る」を選択します
![スクリーンショット 2023-07-
【Xcode】シュミレーターのタップを可視化する
# はじめに
Kavsoftさんのツイートする動画にはどこをタップしたかわかるような円があったので、
これを自分のシュミレーターでも試してみました!#SwiftUI Metal Shader Effects – iOS 17 – WWDC 2023https://t.co/wLobeQWlRs pic.twitter.com/S5hjMrMwGp
— Kavsoft (@_Kavsoft) June 19, 2023
# やりかた
“`:ターミナル
defaults write com.apple.iphonesimulator ShowSingleTouches 1
“`# おわり
これいいですねー# 参考記事
https://qiita.com/bitpoetics/items/0fee66732f5eab54a851
【SwiftUI】TikTok風アニメーションの作り方
# はじめに
SwiftUIでTikTok風のアニメーションを作る方法を紹介します。# デモ
SwiftUIでTikTok風のアニメーションできた?#SwiftUI pic.twitter.com/4kIlJkKxF9
— Shota (@shota_appdev) July 16, 2023
# コード全体
“`swift
import SwiftUIstruct ContentView: View {
// これがtrueのときにTikTok風のエフェクトをかける
@State private var glitching = false// 0.1秒ごとにtrue/falseを切り替えるためのタイマー
private let timer = Timer.publish(every: 0.1, on: .main, in: .common).autoconnect()private let text = “TikTok”
// テキストの位置をランダムにずらす範囲
private let offset
SwiftUI Stepperの実装方法
普段はAndroidの開発をしているのですが、SwiftUIに興味を持ち色々調べたりしてます。
その中で、StepperというのはAndroidには無い物だったので実装してみました。
Xcode Version 14.2
“`StepperSumpleView.swift
struct StepperSumpleView: View {
@State var count:Int = 0
var body: some View {
VStack {
Stepper(value: $count, in: 0…10, step: 1) {
Text(“\(count)”)
}.frame(width: 250)
}
}
}
“`![スクリーンショット 2023-07-16 20.57.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/274615/e30a
【SwiftUI】onChangeで2つの値を監視する
# はじめに
昨日に引き続き`onChange`に関する内容です。# 実装
“`swift
import SwiftUIstruct ContentView: View {
@State private var text1 = “”
@State private var text2 = “”
var body: some View {
VStack(spacing: 10) {
TextField(“”, text: $text1, axis: .horizontal)TextField(“”, text: $text2, axis: .horizontal)
}
.onChange(of: [text1, text2]) { newValue in
print(“text1:”, newValue[0])
print(“text2:”, newValue[1])
}
SF Symbolsを使う時の注意点?
# はじめに
SF Symbolsを使う時の注意点を和訳とともににまとめました。# 注意事項
## 原文
:::note warn
Be sure to understand the terms and conditions for using SF Symbols, including the prohibition against using symbols — or images that are confusingly similar — in app icons, logos, or any other trademarked use.
:::## 和訳(Google翻訳を使用)
:::note warn
アプリのアイコン、ロゴ、またはその他の商標での使用におけるシンボルまたは紛らわしい類似の画像の使用の禁止を含む、SF シンボルの使用に関する利用規約を必ず理解してください。
:::# 出典
https://developer.apple.com/design/human-interface-guidelines/sf-symbols# おまけ
「Symbol
【iOS15.0+】SwiftUI.Textでリンク付きテキストを実装する
# はじめに
iOS14以前はSwiftUIでリンク付きテキストを実装しようとすると、NSAttributedTextやUILabelなどを使う必要があり、結構面倒でした。iOS15以降はめちゃめちゃ簡単に実装することができます。
# Textでリンク付きテキストを実装する
Textはマークダウンを解釈できるので、以下のように実装するだけでリンク付きテキストを実装できます。“`swift
Text(“[リンク](https://example.com)だよ”)
“`![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/81715/007fa1d5-3578-40d5-dc8e-a8dad58b3c3d.png)
しかし、例えばURL部分に変数やメソッドを使用するとリンクになりません。
“`swift
let url = “https://example.com”
Text(“[リンク](\(url))だよ”)
“`![image.png](https://qiita
【個人開発】【iOS】積み上げ記録を残せるアプリをリリース
# はじめに
積み上げ記録を残し、目標達成までのサポートをするアプリをリリースしました。# URL
https://apps.apple.com/us/app/buildtimer/id6448892333# 目的
日々何かに取り組んで努力している方は多いと思います。そういった毎日の行いを記録化してアウトプットできれば幸せになれると思い開発しました。
また、データ化することで分析でき目標達成へのサポートにもなります。BuildTimerは毎日の活動を管理し、計画的に目標達成を支援します。
# サービス概要
### 1.積み上げ目標を投稿
右下のプラスボタンから積み上げ目標を投稿することができます。
目標内容、アイコン、目標達成にかける時間を設定します。
![ezgif.com-video-to-gif (1).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597913/c4ba62f8-805a-583a-7992-fe88fdf8af37.gif)### 2.活動を記録
カウント
【Swift】引数にある謎の`&`について
# はじめに
Swiftのコードを読んでいて、関数の引数に謎の`&`がついていたので調べてみました。# 例
以下のコードを見てください。“`swift
func increment(number: inout Int) {
number += 1
}var number = 0
increment(number: &number)
print(number) // 1
“``increment(number: &number)`を見ると、引数に`&`がついています。
これは、`inout`引数というものです。# inout引数とは
`inout`引数は、関数内で引数の値を変更することができます。
例のコードを実行すると、`increment(number: &number)`で`number`の値を変更していることが確認できます。# inout引数を持つ関数の作り方
`inout`引数を持つ関数を作るには、引数の型の前に`inout`をつけます。“`swift
func increment(number: inout Int) {
nu
【SwiftUI】onChangeの古い値を取る方法
# はじめに
`onChange`で古い値を使いたくなったのでやり方を調べたら可能そうだったので記録しておきます。# 実装
“`swift
import SwiftUIstruct ContentView: View {
@State private var text = “”
var body: some View {
TextField(“”, text: $text, axis: .horizontal)
.onChange(of: text) { [text] newValue in
print(“古い値:”, text)
print(“新しい値:”, newValue)
}
}
}
“`# おわり
こんなことできるの知りませんでした# 参考記事
https://blog.code-candy.com/swiftui_onchange/