・ゴールはバックグラウンドからの復帰時のスピードアップ
バックグラウンドから起動した際のチャート描画が遅い為、改善して欲しいというご依頼で自分のアナログチャートを開発した実績を認めていただきご依頼頂いた案件です。
・楽天iSPeedとの比較
まずはFXチャートアプリの楽天iSPeedの技術調査から始まりました。楽天iSPeedはバックグラウンドからの復帰時のチャート描画が高速です。ご依頼を頂いたアプリは2秒近くかかっていました。違いを研究するためにXcode Instrumentsを使用しドライブの状況、ネットワーク通信等あらゆる角度から違いを探っていきました。
・違いの原因はバックグラウンドでの動作
楽天iSPeedはバックグラウンドにいってもサーバーと通信をしていました。スピードのそれが一番大きな原因でした。
・提案
1.バックグラウンドでも通信をすること。
2.コード自体の大きな見直しをすること。
3.サーバー自体を変えること。
4.SQLiteを使ってローカルにデータを保存し、復帰時にサーバーからは差分のみ取得するようにすること。
結果的に採用されたのは4でした。その他の提案は他に及ぼす影響が大きすぎることが不採用になった原因だろうと思われます。SQLite自体はずっと使用していたDBだったのでそれ程時間をかけずにデータを永続化することが出来ました。
1.バックグラウンド移行時にDBに保存
2.バックグラウンド復帰時にDBから読み込み
3.現在との差分だけをサーバーからデータ取得
面倒だったのは溜まっていくデータの消去方法、複合キーをどうするか、など。
例えば1分足などは永続化すると余計なデータ(チャート表示する必要がない昔のデータ)が溜まっていくことになります。その為、起動時に余分なデータを削除するようにしました。
結果的には2秒が1.5秒ほどに縮まりました。バックグラウンド処理などを実装すればさらにスピードアップは出来るかもしれませんが、他のコードとの影響範囲を調べて慎重に行うということになりました。
【使用言語】Swift
【ツール】SQLite3、Xcode
【担当工程】 要件定義、基本設計、詳細設計、実装・単体、結合テスト、総合テスト
2ヶ月
1,400,000 円
2023年9月22日
アプリやソフトウエア、プログラム改修などのお仕事をお受けします!
プロフィールをご覧いただき、ありがとうございます。安永竜太郎と申します。
この度はフリーランスとしてたくさんのアプリ、システム開発に携わっていけたらと思い登録致しました。どうぞ宜しくお願い致します。
【 自分で開発した製品 】
・ノートアプリ notototo (のととと)
・株価チャートソフトウエア アナログチャート
・クラウドバックアップシステム コピコピタイマー
【 受託開発 】
・見積書作成システム
・生コンクリートスランプ連絡システム
・工事写真整理システム
【 今までに参画させて頂いた案件 】
・FXチャート機能向上(チャート表示高速化)
・iOSに関するクイズ作成
・保育園保護者連絡アプリ
【 備考 】
いままで完成品のイメージからどういった技術が必要になるか選定し、それらを組み合わ
せて一つのシステムを構築してきました。
例)
・社内の事務員が使用するWindows、そちらをvc++でアプリ制作
・現場作業員がもつタブレット、そちらをSwiftを使ってアプリ制作
・それらのデータの置き場としてLinuxサーバーを構築
・サーバーでのデータ加工にPython、表示にHTML,css,javascript,PHP
結果的にVC++、Swift、Linux、PHP、Pythonの技術が身に付いていきました。
ITの世界は広くまだまだ知らない技術、言語などがありますが、その都度経験を積んでお客様の要望にマッチできるよう努力します。
これからはAndroid、Firebase、AWSにも挑戦していきたいです。