Tinder のような 横スワイプできるカードなUIライブラリ「AndTinder」

こんな人気記事あります.

2日で約3000語を暗記、スマフォ世代の英単語学習アプリ「mikan」はTinderライク - TechCrunch

mikanでは左右にスワイプすることで次々とカードをめくっていくようなUIを採用している。これは、去年あたりからアメリカの若者の間で流行している出会いアプリの「Tinder」が生み出し、多くのアプリが採用しているスマフォ・ネイティブといっていいUIだ。

「素早く振り分けができる」てことなのだろうが, Yes/No ボタンでも同じじゃね?

などと思いつつ, ライブラリを探す.

Swipeable-Cards/AndTinder at master · kikoso/Swipeable-Cards

20140730-133942

20140730-133956

20140730-134023

20140730-134040

使い方は簡単で,

レイアウト内に View コンテナとして埋め込んで,

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:app="http://schemas.android.com/apk/res-auto"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:orientation="vertical">

    <com.andtinder.view.CardContainer
        android:id="@+id/layoutview"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1"/>
</LinearLayout>

利用 Activity でカード内のテキストと画像を指定.
スワイプ処理の Listener もここで.

public class MainActivity extends Activity {

  private CardContainer mCardContainer;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.mainlayout);

    mCardContainer = (CardContainer) findViewById(R.id.layoutview);

    Resources r = getResources();

    SimpleCardStackAdapter adapter = new SimpleCardStackAdapter(this);

    adapter.add(new CardModel("Title1", "Description goes here", r.getDrawable(R.drawable.picture1)));
    adapter.add(new CardModel("Title2", "Description goes here", r.getDrawable(R.drawable.picture2)));
    ...

    cardModel.setOnClickListener(new CardModel.OnClickListener() {
      @Override
      public void OnClickListener() {
        Log.i("Swipeable Cards","I am pressing the card");
      }
    });

    cardModel.setOnCardDimissedListener(new CardModel.OnCardDimissedListener() {
       @Override
       public void onLike() {
         Log.i("Swipeable Cards","I like the card");
       }

       @Override
       public void onDislike() {
         Log.i("Swipeable Cards","I dislike the card");
       }
    });

    adapter.add(cardModel);
    mCardContainer.setAdapter(adapter);
  }
}

このUI, 実際使ってみると, 気持ちよすぎてクセになるんだわー

Tinder


【急げ! あれっ?】日本のChromecastユーザーに600円分の「Chromeプロモーションクーポン」

ダッシュですよ!

日本のChromecastユーザーに600円分の「Chromeプロモーションクーポン」をプレゼントする。

 クーポンを入手するには、Chromecastをセットアップしてchromecast.com/offersにアクセスする。このクーポンは、Google Playの映画の購入あるいはストリーミングで利用できる。クーポン提供は7月31日まで。入手方法はヘルプセンターを参照されたい。

Chromecastが発売1周年を祝して600円のGoogle Playクレジットをプレゼント - ITmedia ニュース

以下を読んでから,

Chromecast_プロモーション_クーポン_-_Chromecast_ヘルプ

Chromecast プロモーション クーポン - Chromecast ヘルプ

急いで以下のリンクにアクセスです!!

chromecast.com/offers

....

あれっ....

https___support_google_com_chromecast_answer_chromecast_com_offers

なにこれ..

・・・

5分後アクセスしたら表示されたが,

Chromecast

Chromecast 2

あれ?

これって, 米国のみのキャンペーンじゃね?

クーポンの入手方法はChromecastアプリを起動して、メニューリストの「クーポンを確認」をタップ。するとWEBブラウザが起動して利用可能なクーポン名が表示されるので、「利用」をタップすると適用されます。ただ、残念ながらクーポンの配信国は米国のみです。

Google、Chromecastの発売1周年を記念して音楽聴き放題サービス「All Access」の3ヶ月無料クーポンを購入者全員にプレゼント – ガジェット通信

処理を進めていくと, テレビ画面にはこんな風に表示されて,

写真

パソコン上では, こうなっちゃいました.

Google_Play_Music

うーむぅ...

600円クーポン....

...

あ....

(つづく)


MinSdkVersion を決めるときに素早くカバー率を算出する方法

「で, どれくらいのカバー率なの?」

「えーっと, Gingerbread なので 2.3 からなので API10から なのでー...」

とか, だるいすね.

で, 開くページが だいたいここ.

Dashboards___Android_Developers

Dashboards | Android Developers

で, こんな ダイアログが AndroidStudio にあったりします.

Screenshot_7_23_14__13_01

各OSバージョンの概要と説明ページへのリンク付きです.

Create_New_Project

新規プロジェクト作成からどうぞ.

Create_New_Project_and_Android_Studio


あの Alfred のように素早くアプリが起動できる「TextLauncher」

Mac を使っている人は重宝していると思います.

Quick Silverを超えた?AlfredでMacをカチャカチャ使う | 男子ハック

Quick_Silverを超えた?AlfredでMacをカチャカチャ使う___男子ハック

わたしも愛用しています.

「デスクトップにどのアイコンを置いておこうか」

とか

「Dock にどれを表示させておこうか」

とか考える必要がなく便利です. ショットカットから起動できるし.

で, これに似たAndroidアプリがあります.

Text Launcher - Google Play の Android アプリ

通知バーに入れておけば,

アプリ名やパッケージ名の一文字入力すると,

利用頻度の多いものから順に表示してくれます.

Text_Launcher_-_Google_Play_の_Android_アプリ

日本語入力からアプリの名前の一文字を入力することも可能なようです.

ショートカットが使えないところは, 通知バーに入れておくか, 使いやすい位置にアイコンを置いておけばいいようです.

Text_Launcher_-_Google_Play_の_Android_アプリ

入力した文字がインストールしているアプリのパッケージ名や名前に該当しない場合は, Google Play Store でそのまま検索できたりします.

また, 音声入力からも起動できるようです.

Text_Launcher_-_Google_Play_の_Android_アプリ

あたしはホーム画面がこのアプリを利用しているおかげで 寂しすぎます.

20140713-173303

ぜひ, おためしあれ.

Text Launcher - Google Play の Android アプリ


BitTorrent Sync で サーバ と Android 間で同期させる

パソコンとAndroid間で使っていたが便利すぎる.

同期するんなら「BitTorrent Sync」 がなんか良いよ

・高速
・速度制限なし
・容量制限なし

大容量ファイルが高速で同期できたり.

24時間稼働しているサーバと連携すればもっと便利になりそうなので
サーバにセットしてみた.

関係するファイル
/usr/local/bin/btsync
/usr/local/etc/btsync/sync.conf
/etc/init.d/btsync

/usr/local/bin/btsync

実行バイナリ.
ダウンロードして置くだけ.
WEB-GUI もこれに含まれている.

BitTorrent Sync - ダウンロード

置いたらヘルプをとりあえずみてみる.

# btsync --help
BitTorrent Sync 1.3.106
Usage:
  btsync [--config <path>] [--nodaemon] [--generate-secret] [--dump-sample-config] [--help] [--get-ro-secret <secret>] [--log file]
Options:
--config - location and name of configuration file
--nodaemon - do not use daemon mode
--generate-secret - generate shared secret
--get-ro-secret - get read only secret for existing master secret
--dump-sample-config - dump sample config file
--log file - force logging to file in non-daemon mode
--help - print this message and exit

/usr/local/etc/btsync/sync.conf

JSONな設定ファイル.
サンプルを書き出して編集する.

# btsync --dump-sample-config > /usr/local/etc/btsync/sync.conf

デバイス名 (サーバ名) :

  "device_name": “My Server”,

対象ディレクトリ・シークレットキー :

  "shared_folders" :
  [
    {
      // use --generate-secret in command line to create new secret
      "secret" : “XXXXXXXXXXXXXXXXXXXXXX",   // * required field
      "dir" : "/home/maochanz/sync_dir”,     // * required field

キーは 該当ディレクトリでオプションを付けて叩く.

[sync_dir]# btsync --generate-secret
XXXXXXXXXXXXXXXXXXXXXX

pid ファイルの位置 :

停止時になんか気持ち悪いので指定しておく.

  // uncomment next line if you want to set location of pid file
  "pid_file" : "/var/run/btsync/btsync.pid”

設定ファイルを編集したら以下でとりあえず起動・停止できる.

# btsync —config /usr/local/etc/btsync/sync.conf

# killall btsync

How do I stop btsync in linux - Sync General Discussion - BitTorrent Forums

/etc/init.d/btsync

なんとなく終了が気持ち悪いので起動スクリプトを置いて自動サービス起動できるように.

A simple init script for BitTorrent Sync. Written and tested on CentOS 6.


#!/bin/bash
BIN='/usr/local/bin/btsync'
CONF='/usr/local/etc/btsync/sync.conf'
PID='/var/run/btsync/btsync.pid'
PIDMATCH=true
SERVICE=$(basename $0)
test $(id -u) -ne 0 && echo "This is for root." >&2 && exit 1
main(){
case $1 in
start)
if begin
then
echo "$SERVICE successfully started"
exit 0
else
echo "Error starting $SERVICE." >&2
exit 1
fi
;;
stop)
if end
then
echo "$SERVICE successfully stopped"
exit 0
else
echo "Error stopping $SERVICE" >&2
exit 1
fi
;;
status)
query
exit $?
;;
*)
printUsage
exit 1
;;
esac
}
running(){
test ! -f $PID && return 1
listen=$(netstat -tnlp | grep btsync | awk '{print $NF}' | cut -d'/' -f1)
last=$(cat $PID)
test -z $listen && return 1
if [[ $listen -ne $last ]]
then
echo "Warning: PID of listening instance does not match PID in $PID" >&2
PIDMATCH=false
return 0
else
return 0
fi
}
begin(){
if running
then
echo "$SERVICE is already running." >&2
return 1
else
$BIN --config $CONF
fi
}
end(){
if running
then
if ! $PIDMATCH
then
echo "Error: Failed to stop $SERVICE: PID in $PID does not match PID of listening instance" >&2
return 1
fi
kill -15 $(cat $PID)
xstat=$?
rm $PID
return $xstat
else
echo "$SERVICE is not running."
return 1
fi
}
query(){
if running
then
echo "$SERVICE is running"
return 0
else
echo "$SERVICE is stopped"
return 0
fi
}
printUsage(){
echo "Usage: $0 [start|stop|status]"
}
main $*

view raw

btsync-init

hosted with ❤ by GitHub

CentOS init.d startup script for bittorrent sync btsync - kinggeek.co.uk

# chkconfig --add btsync
# chkconfig btsync on
# chkconfig —list btsync
btsync         0:off 1:off 2:on 3:on 4:on 5:on 6:off
# service btsync start
By using this application, you agree to our Privacy Policy and Terms.
http://www.bittorrent.com/legal/privacy
http://www.bittorrent.com/legal/terms-of-use
BitTorrent Sync forked to background. pid = 1588
btsync successfully started
# service btsync status
btsync is running
# service btsync stop
btsync successfully stopped
# service btsync start
By using this application, you agree to our Privacy Policy and Terms.
http://www.bittorrent.com/legal/privacy
http://www.bittorrent.com/legal/terms-of-use
BitTorrent Sync forked to background. pid = 1588
btsync successfully started

あとは, Androidアプリを入れてサーバで設定したキーを入力すればよい.

BitTorrent Sync - Google Play の Android アプリ

BitTorrent Sync - ダウンロード

大量な音楽, 動画ファイルがバンバン高速同期されてくる.

bit-torrent-sync-setup

unnamed

よすぎる.

同期してるということは, Andoroid 内のファイルを サーバ上で 編集できるということ.