酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

開発

はてなブログの記事をblogsyncを使って一気に更新する(macOS編)

酢ろぐでのポケモン関係の記事は「関連記事」セクションが共通ですが、記事数が多くてウェブ管理画面でメンテするのがかなり厳しいです*1。そこでblogsyncを使って、はてなブログの記事をCLIで一気に更新することにしました。 備忘録代わりにブログを書きま…

iOSアプリのBundle IDの調べ方/TestFlightアプリのBundle IDを調べた

「TestFlightアプリのBundle IDがわからないか?」と聞かれたので調べる方法を調べました。 本記事執筆時点で確認できた方法で、将来的に同様に調べることができるかについてはわかりません。 Bundle IDの調べ方 Google等で検索してアプリのidを調べる TestF…

ポケモンカードゲームのカードをTensorFlowで学習させて写真からどのポケモンかを判定させる

2年くらい前に「機械学習」や「ディープラーニング」といった感じにキーワードだけが先行して飛び交っていた時期がありました。猫も杓子もAIとニュースになっていました。ここ最近では、そういった流行り技術から実用技術へシフトしたのか、以前のように「デ…

iOS 12にアップデートしたところホームに表示されるアプリ名が正しく表示されなくなってしまった

Apple Watch Series 4が今日届いたので、ペアリングさせるためにiPhoneの方もiOS 12にアップデートすることにしました(諸事情によりXcodeは今もアップデートできていません)。 デバイスをiOS 12にアップデートして、ホームに表示されるアプリ名が正しく表示…

iOSのLocationManager#requestLocation()で測位にどれくらいの時間がかかっているのか調べた

iOSで現在の位置情報を1回だけ取得したい場合には LocationManager#requestLocation()を利用します。OS側で測位が完了すると、LocationManager#locationManager(manager:didUpdateLocations:) で位置情報を受け取ることができます。 どれくらいの精度だとど…

iOSで開始日と終了日から間にある年月日を求める

開始日と終了日だけを渡された状況で、開始日と終了日から間にある年月日を求める方法を紹介します。 翌日の求め方 指定された日付から翌日(次の日)を求めるにはCalendar#date(byAdding:value:to:)を使います。 let today = Date() let tomorrow = Calendar.…

AndroidアプリにOneSignal SDKを導入する

最近「OneSignal」を使ったアプリを開発しています。 OneSignalというのは、iOS/AndroidやさらにWebブラウザといったクロスプラットフォームに対応したプッシュ通知の送信サービスです。ネイティブアプリだけではなくXamarinなどにもSDKを提供しているそうで…

In-Houseバイナリに変更した途端プッシュ通知が送れなくなったので問題を切り分けた

諸事情があって、Apple Developer ProgramなアカウントAで作成していたAd-Hocアプリを、Apple Developer Enterprise ProgramなアカウントBで作り直すことになりました*1。 作り直すといっても署名関係だけの問題で、すんなりとProvisioning Profileを変えて …

Google Play Consoleでapkファイルをアップロードしたらエラーが発生した

Google Play用のアカウントが2つあって(仮にアカウントAとアカウントBとする)、いつもはアカウントBの方でAndroidアプリを公開していました。諸事情があってアカウントAの方に統合したいということになり、現在開発中のアプリをアカウントAで公開することに…

AndroidでButtonに勝手に影が入ってしまう

SDKレベルを25から27に上げた影響か今まで気付いていなかっただけか、AndroidアプリのButtonに影(shadow)が入ってしまうようになりました。今まで問題なかったのにどうして……

UIImageViewやUIButtonのbackgroundImageに特定の画像を設定するとなぜか間延びして表示されていた

特定の画像をUIImageViewやUIButtonで表示させると一部分を伸ばして表示したような……9patchみたいな表示がされていた。Images.xcassetsから特定の画像を削除して、再度追加したところ問題は発生しなくなった。 gitで差分を確認するとImages.xcassets/button_…

pythonでIPHubを使って接続元が悪意のあるユーザーかどうか判断する

アクセスしてきた相手をIPアドレスから信用してよいのかどうかを調べるためのWebサービス「IPHub」をpythonから実行してみました。 freeプランで2000リクエスト/日まで利用することができます。登録をするとメールが届くのでvalicationリンクをクリックする…

python3でSQLiteをoratorを使って操作する

pythonからSQLiteを操作するスクリプトを考えたのですが「SQL文書きたくないなぁ……」と躊躇していたところ、pythonには「orator」というO/Rマッパーがあることを知って実際に使ってみました。 python3でSQLiteをoratorを使って操作する pythonのスクリプトは…

tipbotが使っている機能をbitcoin-cliを使って再現するにはどうしたらいいんだろう?

仮想通貨(暗号通貨)をTwitterとかDiscordで@tipmona tip @ch3cooh 393や./tip sakusan 393のように投げ銭の仲介役をするBotを総じてtipbot(ちっぷぼっと)と呼びます。 tipbotを作るためにはどうしたらいいんだろう? 「tipbotってどうやって作っているんだろ…

macOS向けのQt製アプリを配布する

たまたまmacOS向けのアプリをビルドする機会がありました。ビルドしたマシンでは問題なく動いていたのですが、別のマシンで動かそうとしたところエラーがでてしまいました。 macOS向けのQt製アプリを配布できる状態にするまでのやり方を書きました。 Qtアプ…

Pheromona利用規約

Privacy policy of this app is written in Japanese . プライバシーポリシーについて これは本アプリケーションを利用されるユーザーのためのプライバシーポリシーです。本アプリケーションは、ユーザーのプライバシーを尊重し、ユーザーの個人情報およびア…

iOSでジオフェンス機能を実装する

「目的地に近づいたよー」的なことができるのがジオフェンス機能です。アプリを閉じていても反応するのでとても便利と聞いたので実装してみました。 LocationManagerで位置情報を取得する ジオフェンス機能を実装する コード アプリが起動していなくても処理…

2018/03/12 平成29年の確定申告を倒した

今朝はJenkinsの手入れをしていた。Mac Miniをビルドマシンにしているのでストレージにあまり余裕がなくて定期的にバイナリや中間データを削除する必要があります。近いうちに時間を取ってUSBメモリ上にバイナリを保存するようにしたい。 午後からは資料の作…

2018/03/10 つつじヶ丘まで散歩した

最近、仕事をしてるとあっという間に18時になってドッと疲れが出てしまい、しばらく休憩してからは夕飯を作ったりなんやらしていると1日が終わってしまう。 疲れているのもあってあまり家にから外に出ていない。もう少し運動をしないといけないのはわかって…

Google Home Miniを買いました

先日半額になっていたGoogle Home Miniを買いました。設定が面倒くさかったのでしばらく箱に入れっぱなしにしていましたが、嫁にスマートスピーカーを使ってもらいたかったので、自室(仕事部屋)にGoogle Home Miniを置いて、ダイニングにAmazon Echo Dotを置…

Flutterでプロジェクトを作成する

前回、インストールする方法を書きました。本記事ではFlutterでプロジェクトを作成します。 空プロジェクトを作成する flutter create -i swift --org jp.ch3cooh ~/Desktop/hoge $ flutter create -i swift --org jp.ch3cooh ~/Desktop/hoge Creating proje…

(未解決)UINavigationBarで大きなタイトルを使っている時にスクロールさせると稀に画面タッチができなくなる問題

iOS 11から大きなタイトルが使えるようになりました。 UINavigationBarの大きなタイトルを使っている時に、UITableViewをスクロールさせると稀に画面タッチができなくなる問題が発生しています。発生確率はかなり低くて何が原因で発生するのかがわかっていま…

FlutterをmacOSにインストールする

最近Flutterが盛り上がっているらしいので、Flutterをみようと思う。 Flutter情報出てきたのでなんかアプリ作ろうかな— さくさん (@ch3cooh) 2018年3月2日 あらすじ 個人的にはTitaniumのように一瞬盛り上がって、Titaniumすげー!と言ってた人たちが後続の…

UIViewControllerを使っている場合にUINavigationBarの大きいタイトルが小さくならない/追従しない

久しぶりにiOSネタを投稿するような気がします。iOS 11からUINavigationBarに大きいタイトルが追加されました。 テーブルビューをスクロールさせた時に自動的に小さいタイトルに切り替わって欲しいので、largeTitleDisplayModeに.automaticを設定しています…

コードを書かずにJSONを出力するAPIモックを構築できるJSON Serverを試してみた

簡単にAPIモックが作れるJSON Serverを試してみました。 github.com JSON Serverは「30秒で構築できてコードを書かずにfull REST APIを提供する」を謳い文句にしています。実際にJSONを出力させるのはとても簡単でしたので、JSON Serverの導入と実際にJSONを…

UITabBarでタブの文字を消して画像だけを表示したい

久しぶりに汎用的なネタが書けそうです。本記事ではUITabBarのUITabBarItemの文字を消して画像だけを表示する方法を紹介します。 UITabBarで文字を消して画像だけを表示したい デザインガイドラインでは、通常タブバーはアイコンと項目名とをセットにして扱…

Amazon Echo Dotが届いたので設定しました

Amazon Echo Dotが届きましたので、早速開けてみました。 日本では貴重なAmazon Echoシリーズ 本国アメリカでは吊られて売られていたり、大きなカゴに入れて投げ売りされているらしいのですが、日本では貴重なAmazon Echo Dotです。 12月の頭くらいにAmazon …

SHNDコインの現在価格を見ることができるサイト「SHND2JPY」を作りました💪

1万円で1億コイン買えると言われている仮想通貨「StrongHand(SHND、通称:筋肉コイン)」を買いました。ストロングコインって呼ばれていたりもしますね。 何も考えずにネタで買ったのですが、次の日に起きたら価格が5倍になっていて驚きました。どのあたり…

Python3でXPコインの現在価格を取得するSlackbotを作る

本記事ではPython3でXPコインの現在価格を取得するSlackbotを作る方法を紹介します。 これまで社内連絡用にGitterを使っていましたが、Slackに移行するので諸々の処理にbotを使いたいと考えています。ただPython自体がいまいちわかっておらず、少しずつコー…

Python3でSlackbotを作る(準備編)

Slackで動くbotが欲しくなったので、先人たちの知恵をお借りしてPython3でslackbotを作りました。とりあえずはキーワードに対して返事をする程度の基礎部分を実装した感じとなります。 Python3でSlackbotを作る 環境 実行環境はmacOS High Sierraを想定。Hom…