月別アーカイブ 9月 2018

asaba 著者:asaba

【iosアプリ】夕ご飯が決まっていない、そんな時の強い味方 --今日の晩ご飯ーー

夕ご飯の計画が決まってない、自分で決めるのが億劫という方に向いてるアプリを見つけました。

名前そのままですが、「今日の晩御飯」というアプリです。

このアプリは、真ん中の押すというボタンを押すだけで、ランダムに料理名を出してくれます。画像ではエビフライとでています。(気に入らなければもう一度押してください)

で、料理名そのままの状態でレシピというボタンを押すと、なんとAPIを叩いてクックパッドのページに飛んでレシピを教えてくれます。

作ったことないなーとか余計な心配は一切しなくていいのでこれは助かります・・・!

更に、外食ボタンを押すと、googleに飛んで近くの店名(ここではジョイフルです)を教えてくれます。素晴らしすぎる・・・

友達や家族と何を食べるか意見が分かれた場合とかこのアプリを使えば盛り上がること間違いなしだと思います。

独身でも迷いを打ち消してくれるたのもしいアプリだと思います。

以上、優柔不断をスパっと打ち消してくれるアプリでした。短めですが今日はこれで終わります。

P.S.地元を離れてしばらく外食andスーパーのお惣菜ばかりだったので、もう少し早く出会いたかったです。

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

噂されていた新型iPhoneがついに発表!!! ラインナップは “XS” “XS MAX” “XR” の3種類!!

今日午前2時に、Appleの製品発表イベントで、以前からうわさされていたiPhoneシリーズの新モデルが発表されたようです!!!

発表されたのは3機種
https://www.apple.com/jp/iphone/compare/

今回の新機種はすべてiPhone Xベースになったようです。
左から
iPhone XS iPhone XS Max iPhone XR
の3ラインナップになるようです。

つまり、iPhoneではついにホームボタン無し、ノッチありのデザインが”当たり前”になることになります。

上記のURLから、詳しいスペック一覧も確認できるのですが、その中から個人的に気になったポイントを上げてみます。
まずびっくりするのがこちら。

XSとXS Max はなんと最大容量が512GBに。
もう一般的なモバイルPCよりも大きくなってしまっています。クレイジーすぎです。

iPhoneで動画をたくさん撮る人にはとても嬉しい発表かもしれませんね。

次はプロセッサ。

今回の3機種については、すべて同じプロセッサが搭載されるようです。
廉価版にも最新のプロセッサが搭載されるのは嬉しいですね。

では廉価版と上位版の違いはどこにあるのか、というところですが、まずカメラに差が出てきそうです。

XS、XS Maxは光学ズームがありますが、XRはデジタルズームのみのようです。
ズームしたときの画質も、XS/XS Maxの方が綺麗に撮れそうですね。

こちらはちょっと注意したいポイント。
XS/XS Maxは”ギガビット級LTE”に対応していますが、XRの場合、LTE-Advancedまでの対応になっています。
もっともキャリアが対応していなければギガビット級LTEに対応していても速度が出ませんが、今後のことを考えたときに、より速い通信速度を求める方は注意が必要になるかもしれませんね。

ちなみに、噂されていたデュアルSIMスロットですが、実際はnanoSIMスロットと”eSIM”スロットの2つとなったようです。
eSIMは新しい”内蔵型SIM”の規格で、ソフトウェアによってデータを書き換えることでキャリアを切り替える仕組みになっています。
いろいろな事情から、こちらはキャリアが対応していないと使用することができないため、実質的にはnanoSIMスロット×1のような構成になりそうです。

eSIMの詳細はこちらの記事がわかりやすいので確認してみてください。
次世代SIM規格「eSIM」(イーシム)って何だ? 世界では動き始めているeSIMをわかりやすく解説 – モバレコ

最後に、気になるお値段について。

XRは84,800円~、XS Maxはなんと¥124,800~となるようです。ちょっと高い…?

その代わり、一世代前の機種となったiPhone 8・iPhone 7 が値下げされ、少し手が届きやすくなりました。
これはちょっとうれしいですね。

アップル、iPhone 8/7などを10,000円~11,000円値下げ  – 価格.com 新製品ニュース

今後さらに盛り上がってきそうなApple界隈。

新OSのiOS 12とmac OS Mojaveも間もなくリリースということで、今後の動きにも目が離せませんね。

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

m個の文字列の内、n個以上の別々の文字列を含む行を検索する正規表現

 例えばmagickかconvertかcropかrtkを3つ以上含む行を検索する正規表現は次になります。

^.*(magick|convert|crop|rtk)(?!.*\1).*(magick|convert|crop|rtk)(?!.*(?:\1|\2)).*(magick|convert|crop|rtk).*


 後方参照によって既に選ばれた文字列を除外する、というのがこの正規表現の考えです。.*(magick|convert|crop|rtk)でキーワードが出るまで読み、(?!.*\1)で既に読んだキーワードを弾く、というのを繰り返します。ワンパターンの繰り返しですので、この構文をつくるプログラムを作ったりなんかすると楽です。次はjavascriptのサンプルです。


p = '(magick|convert|crop|rtk)'
r = '^'
for(i = 1; i < 3; i++){
    r = r + '.*'+ p + '(?!.*(?:\\1'
    for(j = 2; j <= i; j++){
        r = r + '|' + '\\' + j
    }
    r = r + '))'
}
r = r + '.*'
  • この記事いいね! (0)
asaba 著者:asaba

【androidJava】rarativelayoutを使って画像を重ねる

前回は、linearlayoutを使って画像を横に揃えて表示するプログラムを載せました。

今回は、ralativerayoutを使って画像を重ねるところまで紹介していきます。

ralativerayoutとは、アクティビティに必要な部品を相対的に並べることで、デバイスが縦横してもデザイン崩れすることなく表示できるのが特徴です。

ある一つの部品を軸にすることで、周りのパーツを相対的に並べることで見やすいアプリを作ることができます。

ralativelayoutを使ったソースがこちらです↓

<pre><RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"

    >

<ImageView
    android:id="@+id/apple"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:src="@drawable/apple"
    android:layout_alignParentBottom="true"
    tools:ignore="MissingConstraints"/>

<ImageView
    android:id="@+id/banana"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:src="@drawable/banana"
    android:layout_alignParentBottom="true"
    tools:ignore="MissingConstraints"/></pre>
<pre></RelativeLayout></pre>

 

この中で重要な役割を担っているのが


<span style="display: inline !important; float: none; background-color: transparent; color: #333333; cursor: text; font-family: -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen-Sans,Ubuntu,Cantarell,'Helvetica Neue',sans-serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;">android:layout_alignParentBottom="true"</span>

このコードは、配置する下辺ビューを、親の下辺ビューに揃うように配置してくださいという意味を持っています。

これを応用すれば、ボタンの上からテキストや画像を重ねることも簡単にできます。

 

ralativerayoutを上手に使えば、モバイルアプリでは致命的なデザイン崩れも防ぐことができるので、これからiosやandroidでアプリを作ってみたいというかたはぜひともマスターしておきたいところですね!

自分もレイアウトは見様見真似だったので引き続きレイアウトの勉強も欠かさずしていきたいと思います。

 

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

【SourceTree】「warning: LF will be replaced by CRLF in [ファイル名].」警告でフィーチャーブランチを完了できない

久しぶりに遭遇したSourceTreeの警告です。
develop から切ったブランチをマージしようとしたら、「warning: LF will be replaced by CRLF in [ファイル名].」というメッセージが出て、マージ作業を行えなかったので、その対処法について。
ただ、正直なところ根本的な解決にはなっていないので、あまり参考にはならないかも…。
とりあえず、マージができればOK!というかたは、ご参考にしてください。

 

エラー全文は下記のとおり。

warning: LF will be replaced by CRLF in [ファイル名].
The file will have its original line endings in your working directory.

Merge conflicts not resolved yet, use:
git mergetool
git commit

You can then complete the finish by running it again:
git flow feature finish [ブランチ名]

原因は、どうやら改行コードの置き換えが自動で行われており、その処理で警告が発生しているようでした。

で、こちらの警告について調べたところ、下記のコマンドを実行して、改行コードの変換を無効にする、という対処法が見つかりました。

git config --global core.autoCRLF false

なお、参考にした記事はこちらから。

git add .したらwarning: LF will be replaced by CRLF inが出まくったのは改行コードを自動変換していたから|NormalBlog.net
https://normalblog.net/system/lf_replaced_crlf/

が、私の環境では解決できず…引き続き警告が発生しておりました。

で、最終的に、「Git Flow > フィーチャーブランチを完了」という流れではなく、「マージ」で直接 develop にブランチをマージさせました。
処理としては同じことを行っていそうなのに、この流れだと警告は発生しませんでした。
…とりあえず、解決できたから良しとしてしまいましょう!

 

以上、SourceTreeの警告の対処方法でした。
Gitは便利ですが、たまにこういった警告が発生するので、その時はちょっと面倒ですね。
まあ、それさえなければかなり便利というか、無くてはならないものなので、うまく付き合っていきたいと思います!

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

openssl 1.1.1 リリース

2018年9月11日 OpenSSL 1.1.1 がリリースされました。

この 1.1.1 では TLSv1_3 (TLS v1.3) がサポートされています。また、LTS リリースとなるので 2023年9月11日までのサポートになるバージョンです。

かなり前に 1.0.1 のサポートが停止され、来年末には LTS の 1.0.2p も終わります。面倒ではあるけど、インターネットで公開する環境を提供している以上、サポート終了に間に合う様に入れ替え準備は必須。

とほほ。

https://abi-laboratory.pro/?view=timeline&l=openssl

このあたりに API/ABI の履歴があるので、じっくり見て、上書きか別ディレクトリか、かな。

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

Chromeのフォントが突然汚くなった!? そんなときの対処方法

Google Chromeを使って普段Webを見ていたけど、ある日いつものサイトを開いたらなんか文字がガタガタになっている…
もしかしたら、そんな経験をされた方もいらっしゃるかもしれません。

実はこれ、GoogleChromeでデフォルトで使用されるフォントが変更されてしまったために起こるようです。

アレ?Chromeの表示文字、汚なくなった!? 変わったフォントを1分で取り戻そう – Requlog

サイトによっては、CSSによってフォントが指定されているため、そういったサイトではそのままの設定でもフォントがおかしくなることはありません。
しかし、そうではないサイトについては、ブラウザの初期設定が使用されます。

Chromeではその初期設定がバージョンアップによって変更されてしまったため、今回のような症状が発生してしまったようです。
この症状は、設定からフォントを変更することで解消できます。

まずはChromeのウインドウ右側のメニューから設定をクリックします。

設定が表示されるので、検索欄に”フォント”と入力します。
下記の項目が出てきます。

”フォントをカスタマイズ”をクリックします。

フォント選択する画面が出てくるので、ここで好みのフォントにすべて変更してしまいます。
僕の場合は”メイリオ”を設定しました。

この状態で、表示がおかしかったサイトを再度開けば、表示が治っていると思います。

お困りの方は是非試してみてください。

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

【アプリ】AndroidでキャッチしたBeaconの情報を確認できるアプリ「Beacon Scanner」

少し前に、CordovaでiBeaconを取り扱う記事を投稿しましたが、そもそもBeaconのUUIDなどがわからなかったので、それを別のアプリで取得しました。
使用したアプリは、「Beacon Scanner」というAndroidアプリです。

Google Playのページはこちらから。

Beacon Scanner – Google Play のアプリ
https://play.google.com/store/apps/details?id=com.bridou_n.beaconscanner

画面のスクリーンショットはこんな感じ。

使い方は、アプリを起動して右下の再生ボタンをタップするだけ。
Beaconの信号をキャッチすると、認識に必要なUUIDやMajor、Minor の情報が表示されます。
なお、Beaconの信号取得には BluetoothON にする必要があるので、そこはお忘れなく。

 

以上、Beaconの信号取得ができるAndroidアプリのご紹介でした。
操作方法も画面もシンプルで使いやすいので、おすすめです!

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

php用パッケージマネージャcomposer

   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/

 ComposerはPHPのパッケージ管理ツールです。必要なライブラリやフレームワークをまとめます。またphp向けのアプリケーションを管理する事もしてくれます。使っていてphp版npmみたいに思っていましたが、製作者はnpmに強い影響を受けたとあります。納得。
 パッケージのリポジトリはPackagistです。ここと雑多な記事のおすすめで目的に合ったもの、欲しいものを探します。
 フレームワークならLaravel、テスト用環境ならphpunitあたりが高評価なようです。

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

【androidJava】初心者向け:文字列から数値型に変えたい時

今日は渡された文字列をint型で受け取りたい時の方法を書いていきます。

intentなどで渡された値の照合などをしたい時は結構あると思います。自分もすっかり忘れてしまっていたので備忘録として下記に残します。ほんの少しですが。

<pre>num = Integer.parseInt(intent.getStringExtra(MainActivity.EXTRA_MESSAGE));

MainActivityから受け取った値をInteger.parseIntで変換していますね。この処理の後はもうint型の値として使うことが出来ます。

最近はandroiddevelopmentとか見なくなったので細かい変更などがされているか分からなくて不安でしたが、上記の処理でも問題なく動きます。もしよろしければ参考にしてみてください。

P.S.alt+Enterキーさんは偉大だったと改めて感じました。

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