月別アーカイブ 5月 2019

takahashi 著者:takahashi

Facebook Messengerアプリで意図しないリアクションを送ってしまった場合の対処法

たまにFacebookのチャットアプリであるMessengerを使用するのですが、このMessengerのアプリにちょっと困った機能が存在します。

メッセージを長押しすると、この”リアクションボタン”一覧が出てくるのですが、たまにこれがメッセージのスクロール中に突然出現して、勢いて誤タップして意図しないリアクションを送ってしまうことがあります。

場合によっては意図しない”よくないね”ボタンを押してしまうことも…

これは相当焦ります。

そして何より、リアクションを削除するボタンが見当たりません。

結局探しても見つからないので、最終的に「ごめんなさい…間違えて押しました」と素直に報告することになります💦

そんなリアクションボタンですが、本当にリアクションを解除する方法ないのか、いくら何でも鬼畜使用すぎでは…と疑問に思い、いろいろ調べたところ、

ちゃんとリアクションを削除する方法がありました。

Facebookメッセンジャーに不適切なリアクションをした時の取り消し・変更方法 – キムラボ

取り消すには、誤ってリアクションを付けてしまった投稿を長押しすると、

再びリアクションボタンが表示されますので、落ち着いてさっき間違えてタップしてしまったアイコンをもう一度タップします。

すると、

見事、リアクションが削除されました…!

しかし、削除する方法は分かったとはいえ、誤タップで送ってしまうことがある構造をしていること自体がちょっと困ってしまうので、もっとわかりやすいUIに変えてほしいなぁと思いました。

  • この記事いいね! (0)
村上 著者:村上

【Android】GooglePlayで公開していたアプリが公開停止された時の対処法

本当は対処せずに済むのが一番良いのですが…GooglePlay に公開していた Android アプリが突如公開を停止されたときの対処法です。
ちなみに、こちらの方法はポリシーに違反していないはずなのに停止された時の対処法になります。

今回参考にさせていただいた記事はこちらから。

GooglePlayで配信していたアプリが公開停止(リジェクト)された時にGoogleに異議申し立てをWEBから行う方法 ≫ 使い方・方法のまとめサイト usedoor
https://usedoor.jp/howto/web/google-play/app-koukaiteishi-reject-igimoushitate-from-web/

 

なお、今回アプリが公開を停止された理由は「賭博行為に関するポリシーに違反している」と判断されたためでした。
なんでも、アプリ内に賭博ウェブサイトへのリンクが含まれているとのことでしたが…そんなものを設置した記憶もなく。
正直、心当たりが何もなかったので、Google へ「異議申し立て」を行いました。

Google への異議申し立ては下記から行えます。
https://support.google.com/googleplay/android-developer/answer/2477981

ページにアクセスすると、下の方に「再審査請求」という項目があり、そこに「異議申し立て」のボタンがあるので、それをクリックします。
いくつか質問が表示されるので、現状に合致した項目を選択します。
すると、下記のようなページが表示されると思うので、文章中の「申し立てリクエスト」をクリックします。

画像では、分かりやすいように赤い下線を引いています。

そうすれば、名前や連絡先、あとはアプリ再審査への詳細な説明を書き込む項目などがあるので、それに必要事項を書き込んで申請すればOKです。
あとは、Google からの返信を待ちましょう。
作業は以上で終了です。
思っていたよりもあっさり終わりましたね。

が、そう言えばまだメールが返ってきてない…。
いかんせん初めての作業で入力漏れもあり得るかもしれませんので、もう少し待っても返答がないようだったら、再度申請してみます。

 

以上、GooglePlay に公開していたアプリが公開停止になったときの対処法でした。
何故?心当たりが全くない!という方は、こちらの方法をお試しください。

  • この記事いいね! (0)
asaba 著者:asaba

【javascript】ハイブリッドアプリでiosでマップを動かしたときにページごとスワイプしてしまう問題の対処法

ハイブリッドアプリを開発している時によくありがちなosの問題にハマりました。androdとios、やはりjavascriptで開発していると

プラグインでの動作やレイアウトに多少の差が生じてきます。多少だったらよかったのですが、ページ上に表示したマップを試しに

動かしてみたときにiosだけページごと地図が動いてしまうという致命的なバグを見つけてしまいました。このままではものすごく

見にくいページになってしまうのでaddEventListenerを使ってマップをスワイプしている間はページのスワイプをシャットダウン

して二重スワイプを防ぐように制御することにしました。

コードはこんな感じです。

 

</pre>
var eMap = document.getElementById('map');
eMap.addEventListener(
'touchmove',
function (e) {
e.preventDefault();
},
{ passive: false }
);
<pre>

 

最初の行でidのmapを取得。次にtouchmove、指でページを動かしたときに発火する関数です。二つ目の引数にコールバックとして

e.preventDefaultを記述。touchMoveが作用した時に常にこちらも発火するようになっています。

第三引数ではpassive:falseを設けていますが、これがないとブラウザが正常にe.preventDefaultを読み取ってくれないです。

chromeではpreventDefaultがデフォルトでtrueとなっており、この状態だと命令された動作をキャンセルせずにスルーして実行してしまう

ため、こちらでfalseとして変更してあげる必要があるみたいです。最適解ではないですが有効な一手になりうるので参考にどうぞ。

 

 

 

  • この記事いいね! (0)
著者:杉浦

【Laravel】factory自動生成ツールlaravel-test-factory-helperの紹介

mpociot/laravel-test-factory-helper: Generate Laravel test factories from your existing models
 Laravelにはfactoryという機能があります。
データベースのテスト 5.5 Laravel#ファクトリの記述
 次の様にfactoryをdatabase/factories/以下に定義し、

use Faker\Generator as Faker;

$factory->define(App\User::class, function (Faker $faker) {
    return [
        'name' => $faker->name,
        'email' => $faker->unique()->safeEmail,
        'password' => '$2y$10$TKh8H1.PfQx37YgCzwiKb.KjNyWgaHb9cbcoQgdIVFlYg7B77UdFm', // secret
        'remember_token' => str_random(10),
    ];
});
// <a href="https://readouble.com/laravel/5.5/ja/database-testing.html#writing-factories">データベースのテスト 5.5 Laravel#ファクトリの記述</a>より引用

 次の様に呼び出すことでデータを生成し、モデルに代入された状態で使用できます。

public function testDatabase()
{
    $user = factory(App\User::class)->make();

    // モデルをテストで使用…
}

 ダミーの値はfakerというライブラリで生成します。
stympy/faker: A library for generating fake data such as names, addresses, and phone numbers.
 有用なライブラリなのですが様々な値生成方法を選べるためfactoryの定義にも悩みがちです。laravel-test-factory-helperはfactoryを自動生成します。

composer require mpociot/laravel-test-factory-helper

とcomposerで導入。

php artisan test-factory-helper:generate

とartisanを実行。するとモデル定義に従ってデータベースから値を取得、適した型のfakerをつけたfactoryをモデル分全て生成します。

  • この記事いいね! (0)
asaba 著者:asaba

【sourceTree】プルをすると認証エラーになるエラーの解決法

macでソースツリーとbacklogを連携させるときに少しハマりました。コルドバアプリをビルドしようとしたら反映されていなかったので

プルを試みたのですが、下のようなエラーにずっと攻撃されていました。

 


fatal: Authentication failed for 'https://backlog/asaba/'
remote: Authorization required

キーチェーンを何回も削除作成したりソースツリーを再起動したりと応急処置をしましたが全く動かず。むしろキーチェーンを

余分に作ったのが原因でxcodeに怒られたりと凄惨な目にあいました。

とりあえずgithubがホスト元のアカウントを消してソースツリーを再起動してみることに。すると、いままでなかったようなダイアログ

がでてきました。ユーザーidとパスワードを入れろと書いてあるのでもしかしたらbacklogのアカウントを入れ直せば認証できるのかと

希望をもってログインし直してプルしたら見事上記のエラーを解決させることができました。あー良かったと思っていたらなにやら

別のダイアログが・・・。password required。またパスワード!?ということでbacklogと同じパスワードを打ち込みました。

このダイアログはセキュリティ強化のため二回同じパスワードを打ち込まないと通してくれないらしく

(同じでいいならあんまり意味がないような気がする)めんどうですが、githubの場合はアクセストークンを要求してくるのでまあまだ

優しいかなという所感でした。

 

何がいけなかったか振り返っている最中ですが恐らくリポジトリがあるbacklogで登録したid・パスワードに対しなんか無駄に一つ

アカウントを登録していたのでそれがいけなかったのかなと感じています。

git系のエラーはほんとに心臓と胃に悪いので極力出くわさないようにしたいです。

 

まとめ:Authentication failedに出くわした場合

 

①sourceTree->環境設定->高度な設定と進み、現行のユーザーを削除。

②ソースツリーを再起動

③冒頭出てくるダイアログにbacklogのユーザーidとパスワードを入力。ダメな場合でも通るので注意。

④プルしようとするとまたダイアログが出てくるのでさっき入力したパスワードをもう一回入力。

 

以上になります。

 

  • この記事いいね! (0)
著者:杉浦

逸脱の標準化、裏マニュアル、割れ窓理論とソースコードの品質検査の自動実行

 逸脱の標準化はチャレンジャー号爆発事故 – Wikipedia、裏マニュアルは東海村JCO臨界事故 – Wikipedia、あたりを端に発する、規則を守らないことが当然になっている様を指す言葉です。この手の話は大体安全マージンをとってある規則に従った手順を無視して、ぎりぎり異常の起きない(あるいは徐々に進行する異常)手順を実行してしまい、ちょっとしたアクシデントで致命的に壊れる、という結になります。
 割れ窓理論は次の様な悪しき行いでも放置され続けると増大し続ける、という理論です。

建物の窓が壊れているのを放置すると、誰も注意を払っていないという象徴になり、やがて他の窓もまもなく全て壊される

割れ窓理論 – Wikipedia

 上記二点から考えられるのは、ほんの少し危険な行為であっても即座直し続けなければとてもひどいことになる、ということです。 コーディングにおいてそういった危険行為を発見するための方法にLintやテストがあります。Lintとはソースコード検査プログラムのことであり、曖昧な処理、誤った意図で行われやすい記述、読み取り難い記述などを検出します。
 コーディングにおける危険行為を直し続けるにはLint、テストなどといったソースコードの品質検査を行い続ける必要があります。しかし手作業でこれを行い続けるのは現実的でありません。何度も同じ作業を行うことは退屈であり、コードを作ったり改造したりする時間の方をより多く取りたくなるものでソースコードの品質検査には多くの時間を割けません。上手く働く自動実行はこの時間と品質のトレードオフ問題を解決します。
 自動実行実現のための方針は、Lint、テストなどの作業を全てコードに起こし、gitにコミットする度の様なタイミングで自動実行させるようにする、というものです。仮に完成するコードが等しいものとした場合

検査用の仕組みの導入、作成にかかる時間 + 自動実行している間に手が止まる時間 < 繰り返し手作業で検査する時間

となる場合、お得です。最初は検査用コードを作るのに時間がかかりますが異なるプロジェクトであっても似たものを書くことが多い為、どんどん慣れて早くなります。またバグると致命的な部分、バグりやすい部分がわかってくるとテストの分量を調整できるようになり、検査の仕組みを余分に用意しにくくなります。
 今時のIDEにはgit hookや検査用ツールへのショートカットがありますので、小さな単一のツールから順々に備えていき、大きくしていくのがよいと思います。

  • この記事いいね! (0)
村上 著者:村上

【CSS】Androidでボタンをタップした時に表示される枠線を削除する方法

ボタンに限ったことではありませんが、Android 端末でボタンをタップした際に表示されるオレンジの枠線を削除する方法についてです。
ページデザインが全体的に青で統一されていたので、オレンジ色がそぐわなくて消したかったんですよね。
あと、ボタンは円形なのに枠は正方形なので、それも違和感がありました。
ちなみに、Webページではなく、Cordova アプリです。

今回参考にさせていただいた記事はこちらから。

[CSS] Androidでタップ時、オレンジの枠が消えない場合|metrograph.jp
https://metrograph.jp/css_android_orange/

 

さて、実装のためのコードは下記のとおりです。

button {
    -webkit-tap-highlight-color: rgba(0,0,0,0);
    outline: none;
}

記事に乗っていたサンプルコードでは、box-shadow: none; という記述もありましたが、現行のデザインに影響するので、そちらは削除しました。
なお、削除してもオレンジの枠線は消えましたので、問題なし!

記事によると、2行目の -webkit-tap-highlight-color: rgba(0,0,0,0); だけでは消えないらしいので、
outline: none; も重要なのかも?
Android では動作確認できたので、後ほど iOS でも、きちんと動作するか確認する予定です。

 

以上、Android でボタンタップ時に表示されるオレンジ色の枠線を削除する方法でした。
どなたかのご参考になれば幸いです。

  • この記事いいね! (0)
takahashi 著者:takahashi

VisualStudio Code 13で、ついにリモートや仮想環境上にあるソースを直接触れる機能が追加!

開発環境によっては、開発中んpコードが必ずしもエディタがインストールされたマシンのストレージ内に保存されているとは限りません。

特にWebアプリを開発する場合、動作を確認するためにWebサーバーが動作している環境からアクセス可能な場所にソースを置かなければならないため、エディタで参照する場所とテストサーバーが参照する場所が別々で、変更の度に(FTPやGitなどを使用して)同期をかけてサーバーに反映させたり、もし同じネットワーク上にサーバーがあるのであればSambaを使ってソースが保存されているリモートの場所をドライブとしてマウントして…などどいった工夫が必要でした。

しかし、こういった構成を作ると、デプロイ(サーバーに変更後のソースを配置する作業)やGitへの変更の反映などの操作がややこしくなったり、ソース変更時に権限の問題が発生して、うまく動作しなくなったり、などといった面倒な問題が起こることがありました。

この辺りの問題は、Web開発をやる上で常に付きまとう悩みの種だったのですが、今度のVSCodeのアップデートではその解決策を提供してくれるようです。

というのも、VSCode自身がリモートサーバーへの接続機能を持つことによって、リモートにあるソースやプロジェクトを、あたかもローカルにあるように扱ってくれるという、非常にありがたい機能を追加できるプラグインの配信が、今後のVSCodeのバージョンに対しておこなわれるらしいです。

リモート開発のための拡張をプレビュー導入した「Visual Studio Code 1.34」が公開 – OSDN Magazine

そのプラグインというのが、Remote Developmentプラグインです。

Remote Development – Visual Studio Market Place

このプラグインには、大きく分けて3つの機能があり、それぞれ別のプラグインとして公開されています。

Remote – SSH : SSH経由でリモートプロジェクトに接続できるようにするプラグイン
Remote – Containers : Dockerコンテナ内のプロジェクトに接続できるようにするプラグイン
Remote – WSL : Windows Subsystem on Linux上で動作するLinux内のプロジェクトに接続できるようにするプラグイン

SSHで接続出来れば、汎用的にリモートのWebサーバーに接続できますし、Dockerコンテナも最近開発でよく使われる仕組みですので、直接連携できるようになるのはとてもありがたいです。

そして、今後のWindowsの大型アップデートで強化される予定のあるWSLに対しても直接接続する手段を提供してくれるプラグインも用意されるようです。
今後、LinuxカーネルをWindowsに組み込んで、より本物のLinuxと同様の動作も可能になる予定になっていますし、VSCodeとも簡単に連携できるようになれば非常に強力な開発ツールになるかもしれませんね。

ただし、これらのプラグインは現時点では残念ながらInsider Preview版のVSCode 1.34.0以降でしかインストールすることができないようです。

とはいえ、正式版のVSCode1.34.0も既にリリースされているので、 Remote Development プラグインもあまり時間をおかずに正式版がリリースされてくるかもしれませんね。

リリースを楽しみに待ちたいと思います。

  • この記事いいね! (0)
takahashi 著者:takahashi

入退場もアトラクションのフリーパス認証もすべて”顔パス”でOK。富士急ハイランドの顔認証システムが便利だった件

先日久々に富士急ハイランドへ行ってきたのですが、入場時に以前にはなかったものが置かれていました。

顔認証システムです。

どんなものなのかは上の公式説明動画をご覧いただければわかるかと思いますが、僕はこのシステムのことを知らず、入園時にちょっと戸惑ってしまいました…(;´∀`)

入園時にゲート前の端末のカメラで自分の顔を登録するのですが、正直、”えっ、入場時に顔を登録するの…めんどくさい…”と思っていました。

ところがこの顔認証、一回入園してみるとその便利さがすぐにわかります。

入場口で顔認証をすることで、チケットの情報と自分の顔が紐づけられるので、例えばアトラクションに乗る際はチケットを見せることなく、自分の顔だけでアトラクションに乗る権利があるかどうか(例えばフリーパスを持っているかどうか)を確認してもらうことができます。

また、再入場の場合、昔はスタンプを手におしてもらったり、退園前にあらかじめ何らかの手続きをしないといけなかったりする遊園地が多かったと思います。

現在の富士急ハイランドでは、一時退園前に手続きする必要は一切なく、またチケットも提示せずに再入場口から再入場することができます。

チケットが全く必要ない…というわけではないとは思いますが、園内ではほぼチケットを出す場面がなかったため、手続きもスムーズでしたし、むやみにチケットを出し入れして失くす危険が最小限になるのは、とても画期的ではないかと感じました。

最近は顔認証もだいぶ一般的な技術になってきましたが、そのせいもあってか顔認証単体で使い道を考えてみても、あんまり画期的に感じなくなってきていました。

しかし、今回のように特定の場面でうまく使えば、面白い使い方がまだまだできるんだな、ととても勉強になりました。

是非他の遊園地でも普及してほしいですね。

  • この記事いいね! (0)
村上 著者:村上

【Android】アプリのパッケージ名を変更する方法

ちょっと手こずったので、備忘録としてまとめます。
Android Studio でアプリのパッケージ名を変更する方法です。

参考にさせていただいた記事はこちらから。

【Android】パッケージ名をさっと変更したい場合の手順 – Brew the Mash
https://mashmorgan.hatenablog.com/entry/2018/06/06/160823

 

手順は上の記事にありますが…まず、Android Studio でアプリを開き、左サイドメニューの「1:Project」の表示を「Android」に切り替えます。
次に、app > java 以下のプロジェクト名が書かれたディレクトリを右クリックし、Refactor > Rename を選択します。
警告が出てきますが、気にせず「Rename package」ボタンをクリック。
そして表示されたウィンドウで変更後の名前を入力し、決定ボタンをクリック。
途中で、変更するファイル一覧が表示されるので、「Do Refactor」して、名前の変更を実行します。

あとは、build.gradle や場合によっては AndroidManifest.xml に記載してあるパッケージ名についても変更します。
全ての変更が完了したら、アプリをビルド・実行してみてください。

なお、もしすべてのパッケージ名を変えたのにビルドエラーが発生する場合は、一度アプリをクリーンするか、Android Studio を一度終了し、再度起動させてみてください。
私の場合は、これらを行うことで無事ビルド・実行することができました。

 

以上、アプリのパッケージ名を変更する方法でした。
参考にした記事のように、手こずらずにさっと変更することはできませんでしたが、ドツボにハマるほどではなかったので一安心でした。

  • この記事いいね! (0)