カテゴリーアーカイブ OS

takahashi 著者:takahashi

噂されていた”極狭ベゼル”なiPadが現実に!? iPhone Xを踏襲した新型iPad ProをAppleが発表!

前回の記事先日のAppleの発表会「Apple Spetial Event」で発表されたMacについて書きましたが、今回はiPadについて書きたいと思います。

・噂されていたホームボタン無し/極狭ベゼルのiPadがついに現実に!?

先日ご紹介したMacの2新機種発表の時点でかなり驚きましたが、さらに新型iPadの発表もされたのでさらにびっくりしました。

以前リーク情報として新型のiPadのイメージ図が出ていましたが、まさかほぼそのまんまの姿で現れるとは思いませんでした。

ホームボタンが無くなり、iPhone X/Xs/XR 同様にジェスチャーでホーム画面やアプリを切り替える方式になりました。
また、高精度の顔認証機能である”Face ID”も搭載しますが、iPad Proの場合はセンサーのスペースが十分に取れたのかノッチはありません。

新しいiPad Proの凄いところは、最近のモバイルPCを追い越すほどのスペックを搭載している点です。

今回の新型iPad Proは7コアGPUと8コアCPUを搭載していて

市場にあるポータブルPCのうち92%のモバイルノートPCよりもiPad Proの方が高速だとのことです。

なので、よりリアリティのある3ゲームもヌルヌル動くし、Adobeが開発するiPad Pro向けのフルバージョンのPhotoshopも使うことができるとのことです。

そしてもうひとつ大きな変更点として、Apple製のモバイルデバイスで初めてUSB Type-cが採用された点です。

Type-Cが採用されたことで、他のType-C対応機器との接続が容易になったり、

iPhoneなどのほかのUSB機器に充電できたりといったことができるようになったとのこと。
iPadからiPhoneに電源供給されている光景はちょっと面白いですね。

ベゼルが狭くなっている点については、「どうやって持つんだろう…w」というのが正直な印象ですが、機能面ではより使い勝手が良くなっているようなので、全世代のiPadProよりもかなり気になるデバイスになっているのではないかなと感じました。

いづれのハードウェアも、前回と比較してかなり進化した印象を感じた発表でしたね。

いよいよ大手IT企業各社がデバイスの開発に本腰を入れ始めた感のある今期、今後シェアの変動やハードウェアがどのように展開されていくのか、とても楽しみですね。

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

【Android】アプリ内にデータを保存できる「SharedPreferences」

Androidでアプリを開発する際、ちょっとしたデータを保存したいときがあるかと思います。
Webであれば、Cookie や LocalStorage が使えますが、Android の場合でもよく似た仕組みがあります。
それがこちらの「SharedPreferences」です。

参考にさせていただいたサイトはこちら。

[Android] データを保存し Android Studio で確認 SharedPreferences
https://akira-watson.com/android/sharedpreferences.html

 

早速使い方はこちら。

SharedPreferences dataStore = getSharedPreferences("DataStore", MODE_PRIVATE);
Editor editor = dataStore.edit();
// 保存するデータを追加
editor.putString("input", "abcdefg");
editor.apply();

なお、getSharedPreferences() の第2引数で指定している MODE_PRIVATE とは「このアプリからのみ読み書き可能」という意味になります。
基本的には、これでOKだと思います。

また、データはほかにも下記の型を保存できます。

editor.putInt("DataInt", 123);
editor.putBoolean("DataBoolean", true);
editor.putLong("DataLong", 12345678909876L);
editor.putFloat("DataFloat", 12.345f);

そして、読み出しは下記のようになります。

String dataString = dataStore.getString("input", null);

読み出しについてはいたってシンプルですね。
なお、第二引数には、データを取得できなかった場合の代用値を指定します。

他の型の取得については下記のとおりです。

int dataInt = dataStore.getInt("DataInt", 0);
boolean dataBoolean = dataStore.getBoolean("DataBoolean", false);
long dataLong = dataStore.getLong("DataLong", 0);
float dataFloat = dataStore.getFloat("DataFloat", 0);

 

以上、アプリ内にデータを保存できる SharedPreferences の使い方でした。
データベースに保存するまでもないような、小さなデータなどでしたらこれで事足りるかと思います。
是非、便利に使ってください。

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

Appleの発表会で噂されていた新型のMacBook Air と Mac miniがついに発表!!! そのスペックはもはや”廉価版Mac”ではない!?

昨晩のAppleの製品発表会、Apple Special Event ですが、僕もリアルタイム配信で見ていました。
いやぁめちゃくちゃ盛り上がってましたね!とても楽しかったです。

Apple Special Event2018年10月30日 – Apple

今回はかなり盛りだくさんの内容で、

・MacBook Air
・Mac mini
・iPad Pro
・Apple Pencil

これだけの新作ハードウェアが発表されました。
その中で、今回はMac周りに絞ってどんなことが発表されたのか、かいつまんでご紹介したいと思います。

・ついに発表! 新型MacBook Air

以前から登場が噂されてはいたものの、なかなかその姿を現さなかった新型MacBook Airですが、今回の発表会でついに発表されました!!!

この発表に会場も大歓声があがりました。

一見すると外見のデザインは踏襲されているように見えますが、他のMacBook同様にUSB Type-Cポート(Thunderbolt 3)2つに統合されました。
またディスプレイ部分はアルミのベゼルではなくMacBook Proのような黒ベゼルに変わり、Retina Displayが採用、解像度も400万ピクセルにパワーアップしたとのこと。
キーボードは新世代のバタフライキーボードが採用され、耐久性が増しているということです。

そして驚くのはここから。

なんと最大で1.5TBまでストレージを増やすことができるように。
このオプションを選ぶと+11万円になりますが、モバイルPCで1TB以上もの容量のSSDが実際に搭載されるようになったというのは驚きですね。

そして筐体のサイズが、従来よりも17%小さくなっているようで、より持ち運びがしやすくなっているのも魅力的ですね。

他にも専用のセキュリティチップを搭載したり、Touch IDに対応したりと、”廉価版Mac”とは言わせないといわんばかりのスペックアップが図られています。

MacBook Air – Apple

・4年ぶりにリニューアル!新型Mac mini

なんとさらにもう一つ、以前から登場が噂されていたMacが発表されました!


新型のMac mini !!!

実に4年ぶりのリニューアルだそうです。
こちらもカスタマイズ次第で超高性能デスクトップPCにすることができます。

そして小さい筐体でありながら、使いそうなポートが沢山備えられているのも魅力です。

Ethernetポートは10Gbpsに対応し、Thunderbolt 3ポートにはeGPUを接続可能とのことです。

そんな高性能で筐体が小さいMacなので、映像制作現場でスタックさせて使うこともできますし

何ならデータセンターのサーバーマシンとしても使えますよというような説明にちょっと笑ってしまいました。

Mac mini – Apple

今回は以前から噂されていた新しいMacが2つも発表されたので、正直とてもびっくりでした。
自分は旧モデルのMacBook Air 11インチを使っていまして、持ち運ぶのにはとても使いやすい大きさなのですが、現在は残念ながらラインナップから消えてしまっていました。
このままMacBook Air自体もなくなってしまうのかな?と思っていたので、今回の新機種発表はとても嬉しいニュースですね。

旧モデルの13インチMacBook Airよりも筐体の大きさも小さくなっているようですので、もし次乗り換えるなら選択肢としてありかもなぁ、と感じました。

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

【Android】XMLをJSONに変更できるライブラリ「JSONIC」

結論から言うと、私の環境ではうまく使えなかったので、実際の使用は見合わせました。
が、かなり便利そうだったので、いつか使うとき用に備忘録としてまとめます。

今回紹介するのは、「JSONIC」というJava用のシンプルかつ高機能なJSONエンコーダー・デコーダーライブラリです。
GitHubはこちらから。

GitHub – hidekatsu-izuno/jsonic: simple json encoder/decoder for java
https://github.com/hidekatsu-izuno/jsonic

…しかし、よく見たら、今後機能強化が行われることがないメンテナンスモードに移行するとのこと。
もし利用する場合は、jackson への移行をおすすめしているとのことでした。

 

使い方のサンプルコードはこちら。

import net.arnx.jsonic.JSON;

// POJOをJSONに変換します
String text = JSON.encode(new Hoge());

// JSONをPOJOに変換します
Hoge hoge = JSON.decode(text, Hoge.class);

いたってシンプルです。

また、XMLをJSONに変換したい場合は、下記のようにします。

Document doc = builder.parse(new File([変換したいXMLファイル]));
String xmljson = JSON.encode(doc);

例えば、下記のようなXMLファイルを変換すると、

<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Feed Title</title>
  <entry>
    <title>Entry Title</title>
  </entry>
</feed>

変換後のJSONは下記のようになります。

["feed", {"xmlns": "http://www.w3.org/2005/Atom"},
    ["title", "Feed Title"],
    ["entry",
        ["title", "Entry Title"],
    ]
]

なお、この時、タグ間の空白文字も TextNodeとして出力されるらしいので、これが不要な場合は、DOM作成時に取り除く必要があるとのことでした。

 

以上、簡単ではありますが、JSONIC ライブラリの使い方でした。
もし、JSONのエンコード・デコードをシンプルに行えるライブラリをお探しでしたら、参考にしていただければと思います。
が、最初に書いたように、JSONIC は今後機能強化を行わないとのことでしたので、利用する場合は、jackson を使用するようにしてください。

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

IBMがRedHatを買収 気になるRedHat系OSへの影響

昨日、衝撃のニュースが発表されました。

IBMがRedHat買収合意を発表。買収額約3.8兆円、クラウド分野でアマゾン・マイクロソフト追撃 – Engadget 日本版

なんとオープンソース界隈で非常に大きな影響力をもつRedHat社がIBMに買収されてしまいました。
しかもその買収額は3兆8000億というとんでもない額。これには世界中のIT界隈の人々が驚いたことだと思います。

RedHat社は商用(有料)Linuxディストリビューションの中でも非常に人気の高いRedHat Enterprise Linux (RHEL)を開発、販売している会社です。
また、Linuxディストリビューションのfedoraや、RHELのオープンソース部分を使用して作られたCentOSなどともかかわりが深く、開発に協力していたり、これらのディストリの成果をRHELにも取り込んでいたりと、かなり密接な関係をもつ、オープンソース界隈でもかなり影響力の高い企業でした。

今回の買収でRedHatが完全にIBM傘下に収められたわけですが、個人的に懸念していることがあります。
RedHatは完全にオープンソースへの協力を積極的に行っている企業なのは目に見えてわかりますが、一方IBMについては、個人的に「…?」という印象でした。
もしかすると実際はいろいろなプロジェクトを支援しているのかもしれませんが、少なくとも最近になってオープンソース支援へとシフトしつつあるMicrosoftよりも地味な印象でした。

買収後もRedHatの動きについては現状のままにしたいとIBMは言っているようですが、IBMのオープンソースへのスタンスがいまいちわからないので、個人的にはちょっと不安です。

CentOSは、もともとRHELのオープンソース部分を利用して、有志のメンバーがRHELと同等の機能を持つことを目指して開発されている、RedHat Linuxから派生したRedHat系のLinuxディストリビュージョンです。CentOS自体はもともとRedHatとは関係がありませんでしたが、2014年にRedHatが正式に派生OSとして承認を出し、RedHatから直に開発支援を受けられる状態になりました。

今更聞けない!CentOSとRed Hatの違いとは? – エンジニアの入り口

そんなわけで、現在CentOSはサーバーOSとして非常に人気が高く、LinuxをサーバーOSとして使用する企業や団体の多くで使用されている上、各IaaSクラウドサービスのほどんどで公式フレーバーが提供されているほどになっています。

今後IBMが介入してくることでこういったCentOSや同じくRedHatが支援するfedoraとの関係が変化してしまうのではないか、と個人的に心配しています。

ただ、買収されたからと言って悪い方に転ぶとは限りませんし、今よりより良くなっていく可能性もあると思います。
今後RedHatの買収によってこの辺りがどうなっていくのか…注目していきたいですね。

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

いろんなタイミングに合わせて自動でアプリの起動や音楽の再生を行ってくれる”SmartConnect”

XperiaのバンドルアプリでもあるSmartConnectというアプリですが、バンドルされているにも関わらず、一回も起動したことがありませんでした。

ところが、最近タブレットをカーナビ化する際にめちゃくちゃ便利なことに気づきました。
…使ったのはXperiaではなくNexus7ですが…w

今回は、こちらのSmartConnectというアプリをご紹介したいと思います。


こちらが起動直後の画面です。
Sony製のアプリは、説明と一緒に画像が入っているものが多くて、とても分かりやすい印象です。

まず、最初の画面では何かを自動で作業させる際の”きっかけ”になるものを指定します。

何かのアクセサリ(Bluetooth機器やヘッドフォンなど)を接続したとき、または時間で指定することができます。

アクセサリ、または時間を指定し、次に進むと、先ほどの画面で指定した条件を満たしたときに行う動作を指定する画面が出てきます。

Xperia版の場合はこれだけの項目から動作を選ぶことができます。
Playstore版の方はもう少し項目が少ない気がしたので、Xperia版と比べると制限があるのかもしれません。

開始時(例えば機器との接続時)と終了時(例えば機器との切断時)のそれぞれの動作を指定することができます。
例えば、機器に接続されたら音楽を再生、切断されたら音楽を停止、のような設定ができます。

一通りの動作の流れを指定したら、確認画面が出てきます。

ここで今回設定した動作に名前を付けることができます。


つけた名前は一覧に表示されます。
動作の有効・無効もこの画面からも切り替えることができます。

長押しすると

画像の変更もすることができます。

全体の設定では動作時の通知やバイブレーションの設定、読み上げのon/offができます。

メーカー製アプリですが、かなり強力な自動操作機能がついていてとても便利です。
特にXperiaユーザーの方はプリインストールされているかと思いますので、スマホを自動操作させたい場面がある方は是非一度お試しください。

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

Nexus7(2012)を充電時に自動でOSを起動するようにしてみた

最近、使ってなくてほこりをかぶっていたタブレット…Nexus7の2012年モデルを、車のナビ専用端末に仕立てようといろいろセットアップしていたのですが、車のナビにする以上、エンジンと連動して起動したり、停止したりしてほしいのですが、元々汎用用途であるAndroidタブレットだとなかなかその挙動が難しかったりします。

SmartConnectというアプリを使うと何かの”きっかけ”(例えばイヤホンケーブルにつないだ時、とか、充電機器に接続したとき、とか)をもとにして自動でアクションをさせられるので、OS起動後にBluetooth機器に接続されたときなどにナビアプリの自動起動と音楽の再生、接続が切れた時(=エンジンを切ったとき)にホームへの移行や、音楽の停止などを行わせる所まではできたのですが、唯一タブレットの電源onについてはOSが起動する前の挙動なので、アプリではなかなか変更が難しいところです。

ただ、出かける前にタブレットを台に乗せてケーブルをつないで、さらに電源もONにするとなると、埋め込み型のナビと比較してかなりめんどくさいので、何か一つだけでも自動化できないかといろいろ調べていたところ、こちらの記事を発見。

nexus7で充電開始時に自動で電源オンにする設定(root不要)- hycko.blog

root化不要でこんな設定ができただと…
なんでもブートローダーの設定をPC(ADB)経由で変更してやることで、充電専用ケーブル・通信用ケーブル関係なく充電器と接続した時点でAndroidが自動起動してくれるようになるとのこと。

…でも、ブートローダーなんてroot化やROM焼きなんかに出てくるあれだよね…そんな簡単に触れるもんなのか…と疑心暗鬼になりながらも、とりあえず試してみましたところ….

想像以上に簡単でした\(^q^)/

(※写真はNexus7 2013ですが、実際はNexus7 2012で検証しました。なお、Nexus7 2013もブートローダーの起動までは同じ手順でできました。)

簡単に手順をまとめると、下記のようになります。(※メーカーの修理を受けれなくなる可能性のある内容です。試される場合は自己責任の下行ってください。)

1.Androidの設定->開発者ツールから、USBデバッグを有効にします。
(※開発者ツールはデフォルトでは非表示になっています。こちらの方法で開発者ツールを表示させてください。)
2.PCにUSBで接続し、次のコマンドを実行します。(Android Studioをあらかじめインストールしている必要があります。)

adb reboot bootloader

Nexus7が再起動して、ドロイドくんのおなかの蓋があいている絵のある画面が出てきます。

これが”ブートローダー画面”のようです。
この画面が出てきたら、次のコマンドを入力します。

fastboot oem off-mode-charge 0

すると自動でNexus7が再起動され、いつも通りAndroidが立ち上がります。
Androidの起動が完了したら、一旦USBケーブルを抜いた状態で電源を切り、充電専用のUSBケーブルで充電器とNexus7をつないでみます。

すると、電源ボタンを押さなくても電源が自動で入るようになりました!
なお、再び充電専用ケーブルと充電器をつないでも起動しないようにするには

fastboot oem off-mode-charge 1

とすればよいようです。

自分はもう使わなくなったタブレットを再利用してるので設定変更を行いましたが、簡単にできるとはいえ通常はブートローダーの設定を変更すること自体かなりリスキーな作業になります。
お手元のNexus7(2012)で試される際は自己責任のもと、慎重に行っていただきますようお願いします。
(ブートローダーの起動自体は他のAndroid端末でも行えるかもしれませんが、設定の変更については正常にできる保証はない(機種によってはメーカーがブロックしている可能性がある)ので、確証がない限り試さないことをお勧めします。)

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

GoogleChrome 70 がリリース HTTPページの警告の厳格化やPWAの正式対応などが追加

いつの間にかGoogleChrome Ver.70がリリースされていたようですね。

New in Chrome 70 – Google Developers

米国現地時間の10月16日にリリースされたVer.70では、幾つか大きな変更がされているようです。

・非SSLサイトで文字入力を行うと、アドレスバーに赤文字の”保護されていない通信”が表示されるように変更

ついに、SSL通信(アドレスがhttps://から始まるもの)に対応していないサイトで、フォームなどのテキストボックスに文字を入力すると、無効なSSLが設定されたサイトと同様にアドレスバーの”保護されていない通信”の表示が赤文字に変化するように変更されました。

これは以前から予告されていた変更で、Chromeの”常時SSLが基本”という考え方を反映した物にするために、段階的に変更されてきたものです。

Moving towards a more secure web – Google Security Blog

入力フォームのない非SSLサイトでは、黒文字の”保護されていない通信”が表示されるだけですが、入力フォームの存在する非SSLサイトの場合は入力フォームに一文字でも何か文字を入力した時点で、アドレスバーの”保護されていない通信”が無効なSSL証明書を搭載したサイトと同様に赤文字に変わります。

事情を知っているユーザーならまだしも、こういった事情を知らない一般ユーザーからすると、セキュリティ的に問題のあるサイトとして見られてしまう可能性があります。

そもそもChromeがこういった対応をする前から、ユーザーになにか情報を入力させる機能を提供する場合はSSLに対応するのが常識でしたし、最近はLet’s Encryptのような無料のSSL証明書もでていますので、まだSSLに対応されていないサイトをお持ちの方はすぐにSSL対応化していただくことをお勧めします。

・Windows版ChromeがPWAに正式に対応

いままで実験的機能として実装されていたPWA(プログレッシブウェブアプリ)ですが、ついにWindows版Chromeで正式に有効化されたようです。
PWAとはWebアプリとして提供されているインターネット上のWebサイトを、あたかもネイティブ(OSにインストールしたような)アプリとして動いているかのように動作させるできることができる機能です。

通常、Webサイトとして作られたWebアプリは、インターネットにつないでいないと起動できないうえ、ユーザーがWebサイトを開かないと何もできない受動的な仕組みでした。
PWAが有効になることで、こういったWebサイトをPWAに対応させることで、対応ブラウザを通してOSのアプリの一つとしてインストールできたり、インターネットに接続していなくても起動できたり、Webサイトを閉じていても通知が受け取れたり、といった恩恵が受けられるようになります。
またPWAの本質はWebサイトなので、各OS用にプログラムを書き直したり、ビルドし直したり、といった作業をほとんどすることなくクロスプラットフォームアプリを作れるのも大きな利点です。

有名どころでは、現時点でTwitter LiteGoogle PhotoなどのサービスがPWAに対応していますので、早速体験してみたい!という方は是非試してみてはいかがでしょうか。

Twitterにアクセスできなくなった「Twitter for Mac」の代わりはChromeのPWAで「Twitter Lite」を使うのが最適? – AAPL.Ch

なお、公式ブログによると、macOS版ChromeではVer.72で正式対応予定とのことですが、早く試したいという方は従来通り実験機能を有効にすることで現時点でも利用できるようになります。(有効化の方法は上記記事をご覧ください。)

・WebWorkerで実装した各処理に名前を付けることが可能に。

WebWorkerとは、javascriptの処理をバックグラウンドで行わせることができる仕組みです。

Javascriptは少し特殊で、基本的にすべての処理をメインスレッド(メインのプロセス)だけで行います。
そのため、Javascriptで書いたプログラムのどこかで重い処理を行ってしまうと、その処理が終わるまでほかの処理を行うことができないため、結果的にWebアプリがフリーズしたような状態になってしまうことがありました。

こういった処理にWebWorkerを使用することで、その部分の処理はメインスレッドとは別のスレッド(プロセス)で行わせることができるため、重い処理を行わせてもWebアプリがフリーズしにくくなり、快適な動作をさせることができます。

今回のアップデートで、WebWorkerで書かれた各処理ごとに名前が付けられるようになったようで、これにより複数のWebWorkerを使用した場合のデバッグがしやすくなるようです。

ほかにも多くの修正が行われたChrome Ver.70。
今回は魅力的な機能もいくつか正式実装されているようですので、Chrome使いの皆さんは変更点を是非チェックしてみてください。

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

【Android】「The minSdk version should not be declared in the android manifest file. You can move the version from the manifest to the defaultConfig in the build.gradle file.」エラー【未解決】

タイトル通り未解決のAndroid Studioのエラーについてです。
いくつかヒットした解決策を試したのですが解消されず…。

エラーはこちら。

The minSdk version should not be declared in the android manifest file. You can move the version from the manifest to the defaultConfig in the build.gradle file.

minSdk の指定を AndroidManifest.xml ではなく build.gradle で指定するようにという内容です。
なので、この指示通りに minSdkVersion を build.gradle に書き直したのですが…それでも解消せず。

記述箇所はこのような感じです。

android {
  ...
  defaultConfig {
    ...
    minSdkVersion 14
    targetSdkVersion 24
  }
  productFlavors {
    main {
      ...
    }
    afterLollipop {
      ...
      minSdkVersion 21
    }
  }
}

ちなみに、この内容は Android Developers のページを参考にしました。

アプリのバージョニング|Android Developers
https://developer.android.com/studio/publish/versioning?hl=ja

Cordova で作成した環境だから、というのもありそうですが、まだわかってはいません。
また、このエラーがあっても別にビルドや実機での実行は試すことができるので、今のところ、一旦放置しています。
が、ずっとウィンドウ上部に「Try Again」が表示されているのもうっとおしいので、早めに解決したいところですね。

 

解決策が判明したら、改めてご紹介したいと思います!

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

【Android】HTTP Clientの「OkHttp」でAPIを実行する

タイトル通り、Androidアプリで APIを使う方法についてです。
今回は「OkHttp」という HTTP Client を使っています。

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

OkHttp(基本的なGET・POST) – Qiita
https://qiita.com/naoi/items/8d493f00b0bbbf8a666c

 

早速ですが、コードはこちらから。

String url = [APIのURL];
Request request = new Request.Builder().
        url(url).
        build();

OkHttpClient client = new OkHttpClient();

client.newCall(request).enqueue(new Callback() {
    @Override
    public void onFailure(Request request, IOException e) {
        e.printStackTrace();
    }

    @Override
    public void onResponse(Response response) throws IOException {
        Log.d("Response", response.body().string());
    }
});

こちらはGETの場合の記述方法です。
データの取得は非同期で行っています。
同期処理も行えるようですが、私の環境では実行時にエラーで落ちたので、使用していません。

こちらはPOST処理の場合。

String url = [APIのURL];
MediaType MIMEType = MediaType.parse("application/json; charset=utf-8");

RequestBody requestBody = RequestBody.create(MIMEType, [送信するdata]);
Request request = new Request.Builder().
        url(url).
        post(requestBody).
        build();

OkHttpClient client = new OkHttpClient();

client.newCall(request).enqueue(new Callback() {
    @Override
    public void onFailure(Request request, IOException e) {
        e.printStackTrace();
    }

    @Override
    public void onResponse(Response response) throws IOException {
        Log.d("Response", response.body().string());
    }
});

GET処理とほぼ同じですね。
違うのは、5行目からの Request の箇所です。
こちらも非同期で処理を行うように記述しています。

 

が、ここで問題が。
記述が間違っているのか、POST処理で Data がうまく渡せません…。
JSONで記述しているのですが、どうしても渡しているはずのデータが受け取れず。
現在調査中ですが…早く直してしまいたいところです。
解決策が見つけられたら、またご紹介したいと思います!

以上、Androidアプリで API を実行するためのHTTP Client「OkHttp」についてのご紹介でした。

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