月別アーカイブ 11月 2018

asaba 著者:asaba

【iosアプリ】ニフティ不動産が出しているアプリが良い!

来年辺りに引っ越しを検討している筆者です。物件探しは何回か経験があるので条件を絞って探すのはお手の物なのですが、各不動産

会社と比較してどこの会社が管理している物件が安いか比較するところは無頓着で後でこっちのほうがやすいじゃん!!みたいな後悔は

何度もしてきました。少し早いですが自分はニフティ不動産の賃貸物件検索アプリを使って物件探しの審美眼を鍛えております、はい。

このアプリは、スーモやアパマンといった大手を中心に管理されている賃貸マンションを不動産別で比較できる不動産版トリバゴみたい

な感じのアプリになっています。ただ探すだけでなく、お気に入り機能を使って同棲したい方と住みたい賃貸を共有したり他のユーザー

が気に入った場所を見ることができます。

 

住む前の事前情報ってすごく大事なのでここはしっかり物件のお見合いをして住む場所を

決めたいですよね。lineでリンクを送信できるので、相談したい方や親しい方と伝達してしっかりと前相談ができるのもスマートですね。

また、このアプリでは引っ越し業者の比較も簡単な仮の見積もりを作ってできます。引っ越し料金が気になるという方はこれを

使ってコストカットできる点も見逃せないのではと思います。

 

語彙力がないのであまり伝わらなかったかもしれないですがどうでしょうか?引っ越したいけどどこがお得なのか分からない、あのサイト

には自分に合った条件の物件がなかったには向いているアプリだと思います。

 

大分脱線してしまいましたが偶の息抜きという感じでみてくださいね、それでは!!!

 

 

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

__callによる未定義メソッドの呼び出し

 PHPには予約関数マジックメソッドがあり、__call()はその一つです。
PHP: マジックメソッド – Manual

__call() は、 アクセス不能メソッドをオブジェクトのコンテキストで実行したときに起動します。

 要は、未定義のメソッドを呼び出した時は代わりに__call()が呼ばれますよ、ということです。__call()は次の様に定義されます。

public mixed __call ( string $name , array $arguments )

$nameには呼ばれた際に使われたメソッド名、$argumentsには呼ばれた際に使われた引数が入ってきます。__call()を利用する事でな様々なことが出来ます。例えばエラーメッセージです。あるクラスが存在しないメソッドに向かってアクセスされようとした時、エラーメッセージを返すには次の様なコードが使えます。

public function __call($method, $parameters)
{
    sprintf('Method %s::%s does not exist.', static::class, $method);
}

 また、よく行うであろう動作をあらかじめ定義し、その動作の省略に割り当てるという使い方もあります。次の例はあるモデルにクエリビルダを繋ぎ、新規クエリビルダ呼び出しを省略する手法です。この手法を用いることで、クエリビルダと同等の働きができ、なおかつDBから引き出されたphp上における振る舞いのメソッドも多様に持つ、という風に見えるモデルを簡単に記述できます。

class Model
{
    public function __call($method, $parameters)
    {
        return $this->newQuery()->$method(...$parameters);
    }
    //省略
}

 クエリビルダへつなげる手法では更にクエリビルダの持つメソッドへチェーンしていくことが出来ます。これにより一見存在しないメソッドが存在するかのように振る舞います。この存在しないように見えるが使用されるメソッドが無秩序に増えた場合、コードを追うことが非常に大変な作業になります。これはgrepや参照呼出しを一発で当てられなくなるためです。何が呼び出されているかをいちいち確認する必要があることが面倒なのです。
 PHPDocを書くことでこの問題を解決できます。PHPDocの@methodはどの様なメソッドがあるかを示す文言で、多くのIDEはこれを追ってくれます。次の様に記述した場合、IDEはselectメソッド、whereメソッドが存在するかの様にModelクラスを扱ってくれます。

/**
 * @method QueryBuilder select(QueryBuilder $query)
 * @method QueryBuilder where(QueryBuilder $query)
 */
class Model
{
    public function __call($method, $parameters)
    {
        return $this->newQuery()->$method(...$parameters);
    }
    //省略
}
  • この記事いいね! (0)
村上 著者:村上

【Android】端末の戻るボタンが押されたときに処理を実行する

Android アプリを開発中、端末の戻るボタンが押下されたかどうかを検知したいことがあると思います。
例えば、EditText エリアに何かを入力中に、うっかりボタンを押してしまっても、前のページに戻る前に確認のアラートを出すような機能を追加するときや、そもそも戻るボタン自体を無効にしたい、などです。
私も極たまにしか使わないので、備忘録としてまとめます。

 

といっても実装はとっても簡単で、下記のように onBackPressed をオーバーライドするだけです。

@Override
public void onBackPressed(){
    // 行いたい処理
}

あとは、この関数内で、戻るボタンが押されたときに実行したい処理を書くだけです。

私の場合、下記のような実装を行いました。

@Override
public void onBackPressed(){
    // EditTextに入力された文字列を取得
    EditText editText = findViewById([ID名]);
    if (editText.getText().equal("")) {
        finish();
    } else {
        // ダイアログ表示
        new AlertDialog.Builder(this)
                .setTitle([タイトル])
                .setMessage([メッセージ])
                .setPositiveButton("OK", (dialog, which) -> {
                    // OKが押された場合、Activity を終了し、前のページへ
                    finish();
                })
                .setNegativeButton("キャンセル", null)
                .show();
    }
}

上のコードでは、戻るボタンが押されたときに、EditText に入力された文字列を取得しています。
この時、EditText に何か文字が入力されていた場合、まだ編集中とみなし、警告のダイアログが表示されるようにしています。
EditText が空だった場合や、ダイアログでOKが押された場合は、finish() を実行し、現在表示されているアクティビティを終了して、前のページに戻ります。

 

なお、戻るボタンを検知する方法としては下記の記述方法もあります。

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(keyCode == KeyEvent.KEYCODE_BACK) {
        // 戻るボタンの処理
        
    }
}

この書き方を用いると、戻るボタン以外の検知にも使えます。
複数のボタンの検知の処理を書きたい場合には、こちらのほうが便利ですね。
ですが、今回は戻るボタンの検知のみが行えればOKだったので、私は前者を使いました。
なんといっても、関数名が分かりやすいですし。
このあたりは、好みと実装内容によって使い分けてください。

 

以上、Androidアプリで戻るボタンが押されたことを検知する方法でした。

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

使い方がわからないPHP関数の公式ドキュメントを一瞬で表示してくれるVSCodeプラグイン”PHPDocument”

シンプルだけど、PHPでプログラミングしているときにめちゃくちゃ役に立つVisdualStudioCode(VSCode)向けプラグインを見つけました!

PHPDocumentというプラグインです。

使い方もとてもシンプル。

使い方がわからない関数の上で右クリックして、コンテキストメニューから”PHP Document”をクリックするだけ。

こんな感じで、一瞬でPHP公式ドキュメントの当該ページをエディタ内に表示してくれます。

PHPの関数にはかなりたくさんの種類があり、「この関数ってどんな使い方だったっけ…」という場面が結構あるので、いちいちブラウザを開かずに検索できるのはシンプルだけどとてもありがたい機能です。

なお、デフォルトでは英語のドキュメントを表示しますが、複数の言語にも対応しており、VSCodeの設定の

PHPDocument: Language

の項目から言語を選択できます。

ちゃんと日本語も利用できるようになっているのは嬉しいですね。

PHPでプログラムをされる方は是非一度試してみてください。

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

cordWriterのちょっとしたバグ

cordWriterは、文字コードやタブのスキップ数などの機能をほぼサイドバーで管理できることが特徴で、更に20つの言語に対応にも

対応している優秀なエディタです。自分も今これを使っています。

 

 

唯一の欠点は、いきなり落ちること。コードをいじっている最中でも保存する寸前でもお構いなしに降りかかってきます。

しかもandroidStudioと違ってその場で保存されないので、ソースツリーなどを使っていない小さなプログラムだと書いたコードが

全てパーになるのでものすごい損害になってしまいます。

他のエディタでは落ちたことはないのですが、自分はcordWriterを使う時のみに限り複数でのエディタを開いたりサイトを開きっぱなし

にしないなど工夫をしてきました。それから頻度は格段に減りましたが、エディタを使っている時に他のサイトを閲覧しようとするとペー

ジを開いた瞬間に落ちてしまったりととにかく負荷にものすごく弱いエディタということは身に染みて理解できました。

また、連続でアプリを起動してもバックグラウンドで負荷がかかるのでこれも避けてください。

タスクマネージャーを起動していればどのアプリが負担をかけているか簡単に検証できるので、cordWriterとでセットで使うと

予防もできて開発効率が上がるのでおすすめです。

 

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

【アプリ】眠れない夜にはメトロノームがいい?「Metronome Beats」

不眠症ではないはずですが、たまに眠れない夜とかがあったりします。
今までは、「寝たまんまヨガ」とか「Relax Melodies」を使っていたのですが、先日下記の記事を見つけたので、早速実践してみました。

寝つきが悪かった方が一瞬で眠れるようになった方法を描いた漫画に「効果ありそう」「逆に無理そう」「この方法も」など様々な声 – Togetter
https://togetter.com/li/1288882

なんでも、15~30分間くらいの時間、メトロノームを掛けて寝るだけというもの。
リズムは 20~30 くらいの聴いていて遅いと感じるくらいで、かつ音量もかなり小さめに設定するといいそうです。

 

私が使っているアプリは「Metronome Beats」です。
Google Play で探していて、なんとなく画面が格好良くて使いやすそうだったのでこちらをチョイスしてみました。
勿論、他に愛用しているアプリがあるなら、そちらをご利用ください。

インストールはこちらから。
ちなみに、Androidです。

メトロノームのビート – Google Play のアプリ
https://play.google.com/store/apps/details?id=com.andymstone.metronome&hl=ja

そして、実際のアプリ画面はこんな感じ。

主に使うテンポとかタイマー機能の設定が分かりやすいです。
画面を見れば分かると思いますが、私はテンポを 19 で設定しています。
私の場合、このリズムが深呼吸のタイミングにぴったりなんです。
また、タイマーは 30分に設定しています。
勿論、これは私の好みの値なので、適宜気持ちいいと思えるようにカスタマイズしてください。

実際にここ2~3日使ってみたところ、確かに寝つきが良い気がする…!?
実は一人暮らしを始めてから、実家に帰ると時計の秒針がうるさくて眠れない事があったのですが、これは音量が調整できるのと、テンポがゆっくりなためか、全く気になりません。
まあ思い込みしやすいタイプなので、プラシーボ効果とかもありそうですが…それで寝られるなら良いと思います。
しばらく継続して使ってみようと思います。

 

以上、おすすめのメトロノームアプリと、個人的なおすすめ設定値のご紹介でした。
寝つきが悪いと感じている方は、ぜひお試しください。

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

メール機能テストサービスmailtrapの紹介

Mailtrap.io — Fake smtp testing server. Dummy smtp email testing
 Mailtrapはメールにトラップを仕掛けることでメールテストを行うことのできるサービスです。送られるはずのメールをmailtrapで止めることで安全お手軽にメール機能のテストができます。
 アカウント登録が必要ですがgoogleアカウント、githubアカウントを使用することが可能なので登録は楽です。登録するとメールボックスとメールサーバが渡されます。
 
 
 メーラとサーバの情報のみならず、上の画像の赤丸の部分から各種フレームワークに対応したメール設定スニペットが用意されています。このサーバの情報に従ってメールを送ると次の様になります。

 実際には送られず、mailtrapでメールが止まり、送られたメールがどういう風になるか見ることができます。無料版は50通までしかメールを保存できませんが、あふれ次第消してもらえる仕様になっているため受信ボックス詰まって困ることはありません。mailtrapを使うことでテスト用のメールアドレスを作る必要もテストで送られてきた余分なメールを消す必要もありません。mailtrapは実に便利です。

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

自分のスマホにGoogleLensが来たので試してみた!

自分はAndroid 6搭載のスマートフォンを使用しているのですが、ある日ふとGoogleアシスタントを起動したところ、”Google Lens”が追加されていました。


Google Lensとは、スマートフォンのカメラを使って得られた画像に映っているものや文字をAIが認識し、それらに関連する情報を検索・表示してくれる仕組みです。
最初はGoogleのリファレンススマートフォンであるPixelシリーズのみで利用が可能でしたが、現在はほぼすべてのAndroid端末で利用できるようです。

 

例えば、社内にあるグループ会社のはまぞうの旗。

これをGoogle Lensに読み込ませると…

こんな風に画像だけで関連する情報を簡単に検索できます。

他にも、花を撮影すればその花の名前を判定したり、名刺を撮影すれば記載内容を全てテキストにして取り出したりなど、かなりいろんなことができるようです。

結構面白い機能なので、対象の端末をお持ちの方は是非一度試してみてはいかがでしょうか。

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

【Linux CUI Tips】screenコマンドを使用時の入力や実行結果をログファイルに保存する方法

CUI上で長時間かかる処理を行わせて放置したい時や複数のターミナルを使い分けたいとき、SSHなどの接続が切れて処理が中断してしまうのが怖いときなどにscreenコマンドを使用すると非常に便利です。

このscreenコマンドですが、実はscreen内で出力された内容をファイルに保存する方法があるのをご存知でしょうか。

しかも、screenを使っていれば前準備無しでログの保存ができます。

ターミナル上で

screen

と入力し、screenに入ったら、

Ctrlキ+Aキー

を押したあと、すぐに

Shift+Hキー

を押します。
すると左下にメッセージが表示されます。

この状態になれば、ログが記録されるようになります。

停止する場合はもう一度

Ctrlキ+Aキー

を押した後に

Shift+Hキー

とすればログの記録は停止されます。

なお、ロギング中のscreenでログファイルを開いてしまうと無限ループしてログファイルの容量が一気に膨れ上がってしまうそうなので注意してください。

参考サイト:
ターミナルのログを自動保存したい – まちゅダイアリー

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

【未解決】npm run build実行時に発生した「Failed to minify the code from this file」エラー

今日は現在開発中のアプリで発生したエラーについてです。
なお、タイトルにも書いてある通り未解決です。解決策が分かり次第、またまとめようかと思います。

エラーは「Failed to minify the code from this file」というものです。
表示された情報によると、発生個所は ./node_modules/rss-parser/lib/parser.js:16らしいです。
こちらは、RSS から情報を取得した情報を JavaScriptオブジェクトに変換するために、npm を使って追加したライブラリです。

Google翻訳に掛けたところ、「このファイルからコードを縮小できませんでした」とのこと。
ますます意味が分からない…。

 

調べてみたところ、create-react-app のバージョンが v3.0.0 以降だと、このエラーが表示されるようです。投稿者によると、v2.12.1 では問題なく動作したとのこと。
…が、残念ながら create-react-app は使っていないんですよね…。
React のバージョンも下げればいいのでしょうか?…でも、どのくらいまで下げれば?
残念ながら、まだ該当するような投稿を発見できず…。
まだ調査中です。

が、どうやらこのエラーが発生していても、実行自体はできるようでした。
npm run build 実行後、エラーは発生していましたが、試しにそのまま npm start を実行したところ、エラーは出つつも問題なく動作しました。
…なので、現在は暫定的にその状態で開発を進めています。

ですが、エラーが出るのは気になるので、時間を見つけて、引き続き解決策を探したいと思います!

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