なおさんのブログ

iOSエンジニアのブログのはずがいろいろ書いてます。

Flutterアプリの配布方法

はじめに Flutterで試しに作成したアプリを社内で共有したいということでやり方を調べてみました。 iOSはTestFlight、AndroidはAppDistributionを使って配布します。 iOSアプリ アプリの設定の変更 XCode上からアプリアイコンに1024*1024アイコンを追加しま…

AppleWatchを修理に出す話

はじめに いま使っているAppleWatch(Series4)が購入してもう3年経つため、さすがにバッテリーがダメになってきました。 朝充電して夕方もう一度充電しないと持ちません。 ということでAppleにバッテリー交換の修理を出すことにしました。 今回は端末を自宅…

Objective-CからSwiftメソッドを呼び出す方法

はじめに いまだにObjective-Cのコードを触る機会がありますが、そこからSwiftのコードを呼び出そうとした時にいつもどうやるんだっけ?となるのでメモがてら記事にしようと思います。 やること Swift側 呼び出したいクラスとメソッドに@objcをつけます。あ…

UITableViewのSectionHeaderの位置がおかしい

はじめに 先日、作成した画面のUITableViewのsectionHeaderの位置が微妙にずれていてNavigationBarに隠れてしまっているのが発覚しました。 原因がよく分からなかったので色々と調べてみました。 現象 セクションタイトル1がNavigationBarの下に少し隠れてし…

かえでくんのお昼寝

キャットタワーでお昼寝中のかえでくん。 前足で顔を隠しながら寝てる姿、なんて可愛いんでしょう。

iOS13から使えるようになったCombineを使ってみる

はじめに 私が担当しているアプリも近々iOS12以降対応だったのがiOS13以降対応になる。 いままで使えなかったCombine関連もいよいよ使うことができるので調べてみた。 サンプル実装 とりあえずviewDidLoad()に追加して実行してみました。 import UIKit impor…

Swiftのasync/awaitを試してみる

はじめに Swift5.5からasync/awaitが使えるようになったのでどうやって使うのか調べてみました サンプル実装 とりあえずviewDidLoad()に追加して実行してみました。 class ViewController: UIViewController { override func viewDidLoad() { super.viewDidL…

iOS15でNavigationBarとTabBarのカラーを変更する

はじめに iOS14までは普通に動いていたのにiOS15だとNavigationBarとTabBarのカラーがおかしくなってしまったので調べてみました NavigationBarについて 現行の書き方 UINavigationBar.appearance().barTintColor = .white どうやらこの書き方ではダメのよう…

もみじさん ベランダタイム

今日ももみじさんは朝からベランダに出て気持ちよさそうです。 いまは暑くなるまでの少しの間しか出せませんけど。 なんかほっこりします。

横田バーチャル駅伝Tシャツ届きました

先日参加した横田バーチャル駅伝2021の参加賞のTシャツが届きました。 ひさびさの大会参加だったのでなんとなく嬉しいです。こういうのをもらえると大会に参加したって感じがします。 コロナ前よりかなり体力が落ちてしまってますが、また無理しない範囲でい…

もみじさんのまったりタイム

もみじさんです。 お気に入りの段ボールベットで昼間はこんな感じでまったりとしています。 ダンボールのこのサイズ感がいいみたいです。

iOSのアプリ内課金を無償で公開する方法

はじめに iOSのアプリ内課金コンテンツをプロモーションの観点から一時的に無償で公開したいケースがあります。 アプリで専用の仕組みを入れれば何かしらできるとは思うがもう少しスマートな方法がないものか。 調べてみるとAppStoreConnectに以下の機能があ…

Xcode で Signing Certificateがエラーになる問題への対応

はじめに XcodeのSigningで警告が出るケースがあったため調査してみました。 基本は自動設定でOKのはずなんですが、以下の警告が [App] has conflicting provisioning settings. [App] is automatically signed for development, but a conflicting code sig…

横田バーチャル駅伝2021本日よりスタート

本日からスタートです。 バーチャルの大会は初参加なのでどうなるのでしょうか。 TATTAってアプリを使うらしいんですがAppleWatchとかRUNNETとかと連携してあとは走るだけでいいみたいです。 きちんと記録してくれるか不安。 最低10km走らないといけないらし…

Firebaseでいろいろな条件を使ってPush通知をする

はじめに 普段Firebaseを使ってPush通知を実現していますが、全員宛のPush通知を使うばかりでした。 調べてみるといろいろ条件を指定することができるのがわかったのでちょっと調べてみました。 すでにFirebaseを実装済みの前提で話を進めます。 基本的な導…

FlutterでBundleID・ApplicationIDの変更方法

はじめに FlutterでBundleID・ApplicationIDの変更する方法がよくわからなかっためちょっと調べてみました iOS(BundleID)の場合 iOS/Runner.xcworkspaceにワークスペースファイルがあるのでこれをXCodeで開きます。 TARGETS-General-Bundle Identiferを変更…

SlackのWebhookの作成のやり方

はじめに SlackのWebhookを使うケースが増えてきていますが、いつもやり方を忘れてしまいます。 なので自分用のメモも兼ねて載せておきます 以下にアクセスする slack.com チャンネルを選択してインテグレーションの追加を選択 WebhookURLが発行されるのでそ…

OSアプリでCrashlyticsをカスタマイズしてログを保存する

最初に Firebaseにはアプリのクラッシュを監視するCrashlyticsという機能があります。ただ標準クラッシュ以外も監視したいとなると自分でいろいろ実装する必要が出てきます。ということでいろいろ調べてみました。 Crashlyticsの基本的な導入部分は公式ドキ…

ついに開設

ITエンジニアは情報発信が大事ということでブログ始めました。 開発者ブログのはずなのにいきなり我が家の猫の写真から始まります。 きちんと続けられるのか?どうなるんでしょう? もみじ(可愛い子)