まだどこにもないアプリを作る

アプリ開発でつまづいたところなどを中心に記事にして行きます。

【iOSアプリ開発】新規アプリを作るとき安易にiPadに対応してはいけない。

developer.apple.com

 

これまでiPhone/iPadに対応していたアプリをiPad非対応にしてアップデートしようとしたら、

App Store Connectに提出できず、上記のページに飛ばされました。

 

一回iPadに対応させたアプリは基本的にもうiPhoneのみの対応に戻せないようです。

 

iPadの画面サイズに一つ一つ対応するのはとても大変です。

iPhoneとは画面アスペクト比が大きく異なるのでレイアウトをiPad用に完全に見直さないといけませんし、UIAlert関連ってiPadだと調子が悪いことが多い。

 

iPhoneのみ対応であれば嬉しいことに一応iPadでも配信してくれますしね(iPad上でiPhone8の画面サイズで動く)

f:id:rils_k:20210213014719p:plain

この一応iPadで動くiPhoneアプリでも基本的に使用上でほぼ不都合はありません。

 

 

そのアプリのiPad対応によりユーザーがかなり、獲得できたり、ユーザーエクスペリエンスがとても向上するような状況でない限りiPadに対応するのはデメリットしかないかもしれません。

 

 

もう後に戻れないので頑張ってiPad対応します泣

 

 

 

Swift - ViewがaddSubViewされているかどうかを調べるメソッド.isDescendant(of:UIView)

override func viewDidAppear(_ animated: Bool) {

        super.viewDidAppear(true)

       

        if label.isDescendant(of: view){

            print("既にaddSubViewされています")

        }else{

            print("addSubViewされてい無いのでaddSubViewします。")

            view.addSubview(label)

        }

}

 

既にそのViewがあるかどうか,addSubViewされているかどうかを調べることができる。

 

このメソッドを利用すれば、viewWillAppearやviewDidAppearでUIを描画している際に、画面遷移して戻ってきたときに、もう一回UIが描画されるのを防ぐことができるとおもいます。

 

その他にもいろいろ活用方法はありそうです。

Mac OS Big Surで画面のスリープまでの時間を設定する方法。

Mac OS Big Surでの画面のスリープまでの時間を設定する方法。

 

カタリナの時は省エネルギーとかいう項目があってそこにあったと思うけどなくなってましたね。

 

f:id:rils_k:20210211025829p:plain

まずシステム環境設定を探して出して起動してください

 

システム環境設定は

F4キーを押してランチパッドを起動させて出てきた奴らの中にあると思います。

F4キーは一番上のキーの右から4番目にある□が六つ並んでるアイコンのキーです。

 

 

システム環境設定を起動したらバッテリー押しましょう

f:id:rils_k:20210211030235p:plain

 

 

ディスプレイをオフにするという項目のスライダーを動かして好きな時間に設定しましょう。

f:id:rils_k:20210211030348p:plain

 

 

 

 

キーワード

Macbook Airの画面をオフの時間を設定(Mac OS Big Sur)

Mac 省エネルギー ない

 

 

Swift 自分用メモ tableView.allowsSelectionDuringEditing = trueの意味

developer.apple.com

 

詳しくは一応↑に載っています

 

tableView.allowsSelectionDuringEditing = true

にすると

tableViewがisEditing(編集画面)の時にtableViewのセルが押せるようになる

isEditingの時でも

didSelectRowAtが反応するようになる。

 

tableView.allowsSelectionDuringEditing = false

だと反応しない。

 

multipleSelectionの際などの選択にはおそらく関係ない

Swift RealmSwiftにて データモデルのクラス名を"List"にしてはいけない

RealmSwiftにて

データモデルのクラス名を"List"にしてはいけない

 

以下のようなデータモデルで作った

class Todo: Object {

    @objc dynamic var name = ""

    @objc dynamic var done = ""

    @objc dynamic var priority = ""

    @objc dynamic var createdDate = Date(timeIntervalSince1970: 1)

    @objc dynamic var isCheckMark = false

    @objc dynamic var listNumber = 0

    

    var parentCategory = LinkingObjects(fromType: TodoList.self, property: "items")

}

 

class List: Object {

    @objc dynamic var title = ""

    @objc dynamic var color = "a6a6a6"

    @objc dynamic var isMemoMode = false

    @objc dynamic var reorderNumber = 0

    @objc dynamic var todoListNumber = 0

    let items = List<Todo>()//エラー発生

}

let items = List<Todo>()

何故かここでエラー(Cannot specialize non-generic type 'List')が発生してしまうんです。

 

Realm内部の変数名・型名とかと重複してしまうからでしょうか?

 

私の場合は"TodoList"に改名しました。そうすると

 

 Build Succeedするんですよね。

 

あ〜〜〜

 

Macで動画を特定のフレームレート(fps)に変える方法。

Macで動画を特定のフレームレート(fps)に変更する方法

 

フレームレートを特定の数値にしたい方に紹介いたします。

 

こちらの記事を参考にさせていただきましたので、つまづいた場合はこちらもご覧ください。

Homebrewのインストール - Qiita

App Store ConnectにAppプレビューを載せる - Qiita

 

Macのターミナルでffmpegというツールを使ってフレームレートに変更していきます。

ffmpegを入れるためにはHomebrewのインストールがまず必要なんです。

 

1.Homebrewのインストール

まずHomebrewというものをMacで使えるようにします。

もうすでに入れている方は省略して構いません。

 

↓のHomebrew公式サイトに飛んでインストールの下にあるコードをコピー

macOS(またはLinux)用パッケージマネージャー — Homebrew

 

f:id:rils_k:20210203181627p:plain

 

 

ターミナル開きます。

ターミナルはこれですよ。

 

f:id:rils_k:20210203190621p:plain

 

 

f:id:rils_k:20210203182044p:plain

ターミナルを起動したら何もいじらずに,

先ほど Homebrew公式サイトからコピーしたコード

⌘+Cでそのまま貼り付けます。

 

そしてEnterキーを押す。

そうするとパスワードを求められるのでパソコンのパスワードを入力してください。

f:id:rils_k:20210203181859p:plain

 

これでHomebrewのインストールされると思います。

インストールが完了されるまで少し待ってください。

文字の最後が%になっていたら完了しているということです。

 

もしつまづいた方は他のサイト様なども参考にしてみてください。

Homebrewのインストール - Qiita

 

 

2.ffmpegのインストール

今度は先ほどインストールしたHomeBrewを使って

ffmpegというものをインストールしていきます。

brew install ffmpeg

とターミナルに入れてエンターキーです。

 

先ほど起動したターミナルのコードの続きに書いても良いですが

気になる方はここで、ターミナルのバツ印を押してまた起動すれば最初からになります。

 

まあ %という文字に空白を一つ開けて入力すれば良いです。

f:id:rils_k:20210203183025p:plain

 

これでエンターキー。

インストールが完了されるまで少し待ってください。

先ほどと同じく文字の最後が%になっていたらインストール完了しているということです。

 

これでffmpegというツールで動画を編集する準備が整いました。

 

3.ffmpegでフレームレート変更

フレームレートを変更したい動画のファイルパスを取得しましょう。

 

Finderで動画のファイルの位置まで行って右クリック。

ここでOptionキーを押すと普通なら「"~"をコピー」のところが

「"~"のパス名をコピー」になるのでそれを押します。

f:id:rils_k:20210203184334p:plain

これでファイルパスを取得できました。

 

次にメモ帳などでこのコードを作ってください。

f:id:rils_k:20210203191708p:plain

 

 

説明

ffmpeg -i /Users/xxx/Documents/元ファイル.mp4 -filter:v scale=1080:1920 -r 30 /Users/xxx/Documents/編集後.mov

には先ほどコピーした動画のファイルパスを入れます。人により異なります

 

水色が編集後の動画のピクセルサイズを入れます。元の動画のピクセルサイズでOKです。

 

がフレームレートになります。ここで設定したフレームレートになります。

 

が出力先のファイルパスとなります。人により異なります。めんどくさければ先ほどコピーしたファイルパスのファイル名だけを変更したものを入れてください。

 

スペースの有無などの間違えに注意しましょう。

 

 

このコードを先ほどと同じように

ターミナルに貼り付けてエンターキーを押します。

これで/Users/xxx/Documents/編集後.movの場所に

フレームレートが変換された動画が保存されます。

 

 

確認してみてください、

 

 

 

 

お疲れ様でした。難しめですよね。めんどくさいですよね

もしわかりにくかったらすみません。ほんと

参考になれば幸いです。

 

 

 

 

 

 

 

 

 

(゚∀゚)!!!!!!!!!!

 

 

 

 

 

 

 

 

 

 

動画の大きさをトリミング,リサイズするならこのサイトがいい。余白を埋める、ピクセル指定、端をカット,切り抜きなど

かなりいい動画トリミングサイトを見つけました。

動画の余白を黒で埋めたり

動画の端をカットしたり

動画の大きさのピクセル数を指定したりできます。

英語ですが頑張っていこ〜!

 

↓のリンクからサイトに飛んでください。

www.resize-video.com

 

1,ファイルを選択

f:id:rils_k:20210203164107p:plain

Browseを押して編集したい動画ファイルを選択

 

2.動画トリミング方法を選択

f:id:rils_k:20210203164437p:plain

 

1番上Scale the video.....

は元動画ファイルのタテヨコ比率をキープしてリサイズします。

横の長さだけ設定できます。

 

2番目のResize and crop....

は指定したピクセルの大きさに動画をカットしてくれます。

はみ出た部分はカットされます。

 

3番目のResize the video and....

は指定指定したピクセルの大きさで動画の足らない部分を黒く塗りつぶしてくれるという機能です!

 

1番目と2番目の機能はどこの動画編集サイトにもありますが、

3番目の機能はかなり珍しい機能ですし便利です。

 

3.Upload Videoを押す

f:id:rils_k:20210203165403p:plain

 

4.Download Fileを押して編集し終わったものをダウンロードして確認しましょう。

f:id:rils_k:20210203165529p:plain

 

 

基本的な編集はこのサイトがおすすめです、是非使ってみてください!