2021年12月開発状況

Repete

「Repete」をアップデートしました(version 7.1.3)

一部テキストが見づらくなっている問題、一部ラベル位置がずれている問題を修正しました。

Repete Plus

「Repete Plus」をアップデートしました。(version 9.5.1)
「Repete Plus」をアップデートしました。(version 9.6)

10月、11月と中国語学習に時間を割いていて、アプリ開発がほとんど進みませんでした。

12月。中検2級が終わったので、滞っていたRepete Plusの開発に戻りましたが、なかなか進展しません。

iOS 15で、区間の変わり目や、原曲再生/通常再生の切り替えのさいに、稀に再生開始位置がずれるという不具合が発生。この問題の修正がなかなかうまくいきません。

そんななか、12月半ばにiOS 15.2をインストール。
以前、「AirPods Pro使用で再生速度が1より小さい時に2回目再生で冒頭が欠ける問題」があり、その対応処理を付け加えていたのですが、iOS 15.2になって、対応処理部分を取り除いても、問題が発生しなくなっていました。
たいへん嬉しい出来事でした。

「AirPods Pro使用で再生速度が1より小さい時に2回目再生で冒頭が欠ける問題」対応処理を取り除くと、再生区間切り替え時の処理もずっとすっきり。

丁寧にたどると、「区間変わり目でまれに再生位置がずれる」不具合の原因がわかりました。
再生区間切り替え時の処理を刷新。
不具合修正しました。

根幹である再生部分にあった気掛かりを修正できたので、ためこんでしまっている要望や、中国語学習中に感じた改善点などの実装に乗り出すことができます。

関連

2021年10月、11月開発状況

2021年10月、11月開発状況

10月

中国語学習

6月実施の第103回中国語検定に落ちた後、11月開催の第104回を申しこみました。
9月開催と思っていたので、次回の中検まであいだが空きすぎています。
勉強しなくなるだろうということで、10月開催のHSK5級を急遽申し込みました。

10/5になって、HSK試験が10/16だというのに改めて気づきました。
そこから、あわてて、かなり時間を割いて勉強。

10/16。HSK試験本番。そこそこいけたのでは。

HSK試験終了後は、中検に向けて勉強を継続。
学習時間を記録し始めました。

10/25に久しぶりにイラストを描き始めたところ、1日で完成させるつもりが、11月13日までかかり、中国語学習が手薄に。

Repete Plus

HSK試験終わるまでは、アプリ開発に手が回らず。
試験終了後、アップデートを作成。バージョン9.5。
「Repete Plus」をアップデートしました。(version 9.5)

11月

中検2級に向けての中国語学習に時間を割いて、アプリ開発にまったく手が回りませんでした。

中国語学習

11/28開催の中国語検定に向けて勉強。
すこしずつ向上しているものの、仕上がっている感覚がなく、アプリ開発に手を付ける余裕なし。

11/28。中検2級本番。
中検はその日のうちに、解答がネットにアップされます。
それを用いて自己採点。翻訳、作文の点数によりますが、そこそこいけたのではないでしょうか。

関連

2021年9月開発状況
2021年12月開発状況

2021年9月開発状況

字幕読み取りアプリ

動画の字幕を読み取るアプリを作成中。
SwiftUI + Combineで作成開始。しかし、Mac Catalyst機能で作成したMac用アプリで、うまく機能せず。
UIKitでの作成に変更。
iOSのVision frameworkのテキスト認識機能では、iOS 15の段階では、日本語は認識できません。
Google ML Kitでのテキスト認識機能では、日本語も認識できるので、こちらを採用。Mac用アプリはいったんとりやめて、iOS用アプリとして作成することにしました。

Repete Plus

「Repete Plus」をアップデートしました。(version 9.4.3)

iOS 15.0で発生する、再生に関する不具合を修正しました
* 再生中に区間移動すると再生が止まることがある
* 区間再生3回目で再生が止まる

iOSのメジャーアップデートとはいえ、最近は大幅な変更もないので油断していました。
再生という根幹に関わる部分で、おおきな不具合を出してしまいました。コメントで指摘いただいたので、早めに修正することができて本当に助かりました。

「Repete Plus」をアップデートしました。(version 9.4.4)

* ワイヤレスイヤホンを使用して行う録音での挙動を修正しました。ワイヤレスイヤホン(AirPods Proなど)を使用して録音をおこなうさい、オーディオファイルの音声がスピーカーから再生されていましたが、イヤホンから音声が再生されるよう修正しました。

 * 内部構造を改善して、安定性を向上させました。

関連

2021年8月開発状況
2021年10月、11月開発状況

2021年8月開発状況

Repete Plus

Repete Plusをアップデートしました(version 9.4.2)

従来は、テキストエリアでテキストが選択されオプションメニュー(「コピー・調べる」など)が表示された後、タップジェスチャーをしても、オプションメニューは表示されたままでした。
今回のアップデートで、タップすると、オプションメニューが消えるよう修正しました。

SwiftUIとCombine

すこし書き方がわかってきました
Timerを作成

SwiftUIとCombineでiPhoneとApple Watch間のfileTransfer機能を実験

2MBの画像ファイルを転送。成功。時間がかかることもあれば、あっさり転送される場合もあり。

字幕抽出

動画の字幕を抽出してテキスト化したいと思いたち、自家用アプリを作成しました
動画ファイルは残っているけど台本は無くしてしまった、といった場合に活用できます。動画から指定した時間の画像を取得。
字幕箇所を指定して画像を切り抜き。
画像からテキストを認識。
動画全体の字幕を抽出。
と段階を踏んで、一週間ほどで出来上がりました。

久しぶりに新たなアプリ、個人的に有用なアプリを作成できて気持ちが持ち上がりました。
せっかくできたのだから、Mac用もしくはiPhone/iPad用App Storeに出そうか、などとも考え出しました。
字幕抽出について調べると、MP4ファイルなど、字幕が別トラックで収録されているものから抜き出すことを示していることが多いようです。Windows用だとソフトがいくつかあるようです。
WMVファイルなどさまざまな動画フォーマットに対応するとなると大変だな、やはりApp Storeに出すのはよそう、とおもいました。
その翌日、「MacのQuick Time Playerで再生できるものだけ対応しています」とあらかじめ宣言しておくのはどうかしら、と思いました。
どちらにせよ、アプリの使い勝手をもうすこし整えることとしました。

関連

2021年7月開発状況
2021年9月開発状況

2021年7月開発状況

Repete Plus

Repete Plusを9.4.1にアップデートしました
* 原曲再生中にスライダーや波形図のスワイプで位置を移動したあと、再生箇所がずれる問題を修正しました
長い無音時間が末尾にあるファイルで顕著にずれが現れたことから、この問題に気づき、修正しました

Apple Watch

Apple Watchでのオーディオファイルの再生について調査。
プロジェクトにあらかじめ組み込んだオーディオファイルを再生することに成功。
次は、iPhone側のオーディオファイルをApple Watchに送り込みたい。
iPhoneとApple Watchとの間でのデータのやりとりについて調べました。

WWDC21 There and back again: Data transfer on Apple Watch
iCloudを利用する
Watch Connectivity
URL Sessionやソケット
3種の方法を紹介
主に扱われているのは、設定ファイルやちょっとしたメッセージなど小さなサイズのファイル。
もう少し大きいファイルはfileTransferを用いる。
また、データのやり取りのさいのバッテリー消費について、気をつけることとあった。Watch Connectivityを用いたデータのやりとりに関するサンプルプログラム
Using Watch Connectivity to Communicate Between Your Apple Watch App and iPhone App

SwiftUIとCombine

チュートリアルのプロジェクトをすこしいじったあと、Combineについてのドキュメントを読んだりしたものの、なかなか進展がない状況で次の本を読みました。
佐藤 剛士「1人でアプリを作る人を支えるSwiftUI開発レシピ (技術の泉シリーズ(NextPublishing)) 」
とてもためになりました。
実際にSwiftUIとCombineを用いてアプリを作るにあたっての作法が少しわかりました。

関連

2021年6月開発状況

2021年8月開発状況

2021年6月開発状況

Flutter

Flutterの公式サイトのチュートリアル
Building layoutsAdding interactivity to your Flutter app
やりました。

Repete Plus

アプリ開発の収支を改善したいとつねづね考えています。
ゆーじさんのこちらの記事に影響を受けて、Repete Plusのフィーチャー依頼をしました。
Repete Plusは語学学習に役立ちますと熱弁。
Appleに提出。
採用されれば、人目に触れる機会が触れます。
残念ながら採用されませんでした。

version 9.4の作成。
ほたるさんのコメントをきっかけに、「最後の区間で次区間ボタンを押した時、先頭区間に戻る」ことができる機能を実装しました

中国語学習

今月は、中国語学習に力を注いだので、アプリ開発はほとんど進みませんでした。

2012年ごろふと始めた中国語学習で、例文が詰めて収録されている語学教材がありました。これをシャッフルしたり、間をあけて再生したいという思いでRepete(語学学習支援プレイヤー)を作成しました。

アプリ開発を始めて以降は、語学学習はやっているのはやっているのだけれども、アプリの動作確認として行っている状況でした。
Kindleを見ても、2013年からは語学のテキストの購入は途絶えプログラミング関連の書籍ばかり購入しています。

しかし、語学学習支援アプリを作る身ながら、語学学習が進んでいないのはいかがなものかという思いがありました。
そこで、ここのところ、中国語学習をしています。

今月は特に熱心に力を注ぎました。
Repete Plusで教材を再生している時間を見ると、6月は平均80分ほど。
中国語検定2級を目指して学習。
リスニングが非常に弱いので、「合格奪取! 新HSK5級トレーニングブック [リスニング問題編]」「改訂版 合格奪取! 中国語検定 2級 トレーニングブック リスニング問題編」を用いて学習。

合格奪取! 新HSK5級トレーニングブック [リスニング問題編]」。難しい。ぼろぼろ。聞き取れなかった箇所を書き出す。覚える。
語彙がぐっと増えて、以前に比べて力が向上しました。
とはいえ、全然しあがっていません。

試験当日。
リスニング、少し前よりぐっと聞き取れるようになっている!
自己採点。不合格。確信をもって回答した箇所で、相当間違えていました。
残念。

関連

2021年7月開発状況

2021年5月開発状況

ふりかえると、5月はすこぶる体調が良かった。
そのわりに、開発を進めておらず、残念。

SwiftUI

GWに、SwiftUIのチュートリアルを行った。
とても楽しいチュートリアル。
ステップバイステップ方式で、すこしずつ要素が加わっていく。
修正する箇所のコードが表示されており、画面をスクロールすると、修正後のコードとなる。ハイカラ。
iOSでいうテーブルビュー(Androidでいうリストビュー)を作成。
さらにそこから、AmazonのPrime Videoなどで見られる、横にも動かせるビューを作成。
ひととおりできた後には、Apple Watch用に対応したUIを作成。
iPhone/iPadだけでなく、Apple Watchにも対応しやすい構成になっているのに感動。

Apple Watch

Apple Watchを購入。
Apple Watch SE(GPSモデル)- 40mmスペースグレイ。
実機にさわって、Apple Watchとはどんなものか確かめる。
イヤホンがないとオーディオ聞けない。Air Pods Proは落としそう。
耳掛け式イヤホン購入。
画面小さい。じっと見ると気持ち悪くなる。画面を凝視して操作するのは大変。
Siriの使い方を学ばないといけない。

Flutter

Udemyで購入していたFlutterのチュートリアルを再開。動画での懇切丁寧な説明を聞きながら進める。
すっかり忘れていたので、最初から。
Android Studioの操作Tipsなど学ぶ。
あいだが空いたせいで、動画での状況とAndroid StudioやFlutterの状況が変わっている。


2021年4月開発状況

Repete Plusのアップデート

Repete Plusのアップデートを行いました。
「Repete Plus」をアップデートしました。(version 9.1)
前回終了した箇所から再開するようになりました

「Repete Plus」をアップデートしました。(version 9.2)
まだ選曲されていない時には、「選曲」ボタンを押して、オーディオファイルを選んでください、とメッセージが表示されるようになりました

Repeteのアップデート

Repeteでは広告を利用しています。
iOS 14.5で導入されたAppTrackingTransparencyに対応しました
AppTrackingTransparencyの要件への対応について

ユーザーのトラッキングやユーザーのデバイスの広告識別子へのアクセスについて、AppTrackingTransparencyのフレームワークを通じてユーザーの許可を得ることが求められます。トラッキングを有効にする許可をユーザーから得ない限り、デバイスの広告識別子の値はすべてゼロになり、トラッキングすることはできません。

古いアプリの取り下げ

こちらの記事でも描きましたが、4月13日にAppleからメールがありました。
今度のiOS 14.5から新しい署名用証明書が必要となります。長い間更新されていないアプリは、App Store側で更新します。というもの。
開発者側で対応する必要はないのですが、これを機にアプリの状況を見直しました。
「Rendow」「戦国・江戸元号並べ」では広告を使用しています。AppTrackingTransparency対応が必要になることから、「Rendow」「戦国・江戸元号並べ」をApp Storeから取り下げました。
「Rendow」は、走る速度によって音楽の再生速度が変わるオーディオプレイヤーアプリ。Apple Musicが登場する前にリリースして、いくどかアップデートした後は長らくメンテしていませんでした。
戦国・江戸元号並べ」は、戦国時代・江戸時代の年号(元号)を正しい順に並べ替えるというもの。時代小説や幕末もののドラマを見ていて登場する年号がいつ頃を指すのかわからなかったことから作成したアプリ。こちらもリリース直後にいくどかアップデートした後は長らくメンテしていませんでした。
現在、App Storeのラインナップにあるのは、「Repete」「Repete Plus」のみ。寂しくなりました。