iOSアプリ申請時に最低限必要な画像
前に用意したことあったけど全然覚えてないしよくわからなかったので次回用に最低限準備しないとならない画像をメモ。
スプラッシュ画像
3125x5571を1枚用意。
これ1枚用意して、LaunchScreen.storyboardのViewControllerにUIImageViewを貼り付けてAutolayoutを上下左右0に設定したらどの端末でも綺麗になった。
この辺あまりわかってないけどとりあえずこれで。
ただ、これは画像じゃなくてもViewControllerなので自分で作れば不要かな。
アプリアイコン
1024x1024を1枚用意。
これを元にリサイズツール等で以下のサイズを準備してAssets.xcassetsにドラッグ&ドロップ。
20x20
29x29
40x40
58x58
60x60
76x76
80x80
87x87
120x120
152x152
167x167
180x180
ItunesConnectにアップするAppアイコンもこれで。
【android】ActionBarでのSearchViewの基本的な使い方
はじめに
今回やりたかったことは、ActionBarに検索バーをおいて検索すると検索用の画面へ遷移するということ。
最終的にやりたいことは検索バーで検索結果画面を開くところだけど、今回は検索バーをおいてイベントをハンドリングするところまで。
検索バーをおく
まずは画面遷移とかは考えずにとりあえず検索バーをおくだけ。
res/menu/main.xml
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/search_menu_search_view" app:actionViewClass="android.support.v7.widget.SearchView" app:showAsAction="always" /> </menu>
MainActivity.java
public class MainActivity extends AppCompatActivity { SearchView mSearchView; ・・・ @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); // 検索バーを追加(必須) getMenuInflater().inflate(R.menu.main, menu); // 文字色、サイズの変更とプレースホルダーセット(任意) SearchView.SearchAutoComplete searchAutoComplete = (SearchView.SearchAutoComplete) mSearchView.findViewById(android.support.v7.appcompat.R.id.search_src_text); searchAutoComplete.setHintTextColor(Color.rgb(0xff, 0xff, 0xff)); searchAutoComplete.setTextSize(25); searchAutoComplete.setHint("検索キーワード"); return true; } }
検索ボタンのイベントをハンドリング
次に検索された時のイベントをハンドリング
MainActivityでSearchFragment.SearchFragmentListenerをimplementsして、SearchView.OnQueryTextListenerを実装すればok。
MainActivity.java
public class MainActivity extends AppCompatActivity implements SearchFragment.SearchFragmentListener { ・・・ @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); getMenuInflater().inflate(R.menu.main, menu); // ★ 追加 MenuItem menuItem = menu.findItem(R.id.search_menu_search_view); mSearchView = (SearchView) menuItem.getActionView(); mSearchView.setOnQueryTextListener(this.onQueryTextListener); } // ★ 追加 private SearchView.OnQueryTextListener onQueryTextListener = new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextSubmit(String searchWord) { // ★ 検索ボタンでここが呼ばれる return true; } @Override public boolean onQueryTextChange(String newText) { return false; } }; }
以上です
【xcode】AppIconにiPadのエリアがなかった時の対応
またたいした話じゃないけど、アプリの開発をひととおり行ってアプリのアイコンを設定しようとしたらiPad用のエリアがなかった。
iPhoneのみ
理由はプロジェクトを作った時にDevicesをiPhoneを選択して作ったから。
あとからUniversalに変更したのでなかったので手動で追加した。
Assets.xcassetsをFinderで開くとAppIcon.appiconsetフォルダがあってこの中にContents.jsonがあるのでそれを編集。
iPhoneの設定の下にiPad用の設定を追加すればいけた
Contents.jsonに以下を追加
Contents.jsonに以下を追加
{ "idiom" : "ipad", "size" : "20x20", "scale" : "1x" }, { "idiom" : "ipad", "size" : "20x20", "scale" : "2x" }, { "idiom" : "ipad", "size" : "29x29", "scale" : "1x" }, { "idiom" : "ipad", "size" : "29x29", "scale" : "2x" }, { "idiom" : "ipad", "size" : "40x40", "scale" : "1x" }, { "idiom" : "ipad", "size" : "40x40", "scale" : "1x" }, { "idiom" : "ipad", "size" : "40x40", "scale" : "2x" }, { "idiom" : "ipad", "size" : "76x76", "scale" : "1x" }, { "idiom" : "ipad", "size" : "76x76", "scale" : "2x" }, { "idiom" : "ipad", "size" : "83.5x83.5", "scale" : "2x" }
以上です
sftpをプロキシ(squid)または踏み台(ポートフォワーディング)経由で使用できるようにする
はじめに
やりたかったことはタイトル通りなのですが。
登場人物は以下
・作業用PC
・中継サーバー(踏み台 or プロキシ)
・開発サーバー
今回は中継サーバーと開発サーバーはcentos6.5で、作業PCはMacで確認。
アクセス制限は以下
・開発サーバーへのSSHでのアクセスは中継サーバーからしか接続できない。
・中継サーバーへは作業PCから接続できる。
作業するのがプログラマ以外なのでFTPクライアントソフトとかで接続できるようにしたい。というのがやりたかったことです。
調べてみて簡単に実装できそうな方法が2つ。
・SSHポートフォワーディングを使う
・中継サーバーをプロキシサーバーにする
※squidをいれてプロキシサーバーとする。作業者は中継サーバをプロキシに設定する形
これから先、サーバー名は以下とする
中継サーバー = relay
開発サーバー = dev
SSHポートフォワーディングを使う方法
ポートフォワーディング
$ ssh -N -L 2022:devのIP:devのポート relayのユーザ名@relayのIP # Ctrl + cで終了 # 2022は適当なポート番号(作業用PCで空いてる番号)
SFTPで接続
$ sftp -oPort=2022 devのユーザ名@localhost
SFTP接続はターミナルから接続する例なのでコマンドだが、FileZilla等のFTPソフトを使ってる場合も上記の情報を設定すれば接続できる。
中継サーバーをプロキシサーバーにする
こっちの方がsquidを入れる必要があるので少し手間。
あと、SSHポートをプロキシとして解放するのでIP制限等をしない場合は、SSHのポート番号を変更した方がよさそう。今回は60022とかで話を進める。開発サーバー(接続先)のsshd_configでsshのポート番号を変更できるのでこちらは設定済であるとします。
squidのセットアップ
squidのインストール
$ yum install -y squid
以下の項目をコメントアウト #http_access deny all
http://qiita.com/pcnikki/items/404329f9ad9cb6e235d4
ここら辺とか参考にして最低限の設定はしておいた方がよさそう。
今回はsquidの公開ポートはデフォルトの3128で。
Basic認証設定
# 以下を追加 auth_param basic program /usr/lib64/squid/ncsa_auth /etc/squid/passwd acl password proxy_auth REQUIRED http_access allow password
Basic認証用のユーザーを追加(更新、削除)
$ htpasswd -c /etc/squid/passwd user # 作成 $ htpasswd -b /etc/squid/passwd user pass # 追加 $ htpasswd -D /etc/squid/passwd user # 削除
SSHのポート番号をsquidで使えるようにする
・・・ acl SSL_ports port 443 acl SSH_ports port 60022 # ★ココを追加 acl Safe_ports port 60022 # ★ココを追加 ・・・ # ★ ココを書き換えてSSHもConnectメソッドを使えるように # http_access deny CONNECT !SSL_ports http_access deny CONNECT !SSL_ports !SSH_ports ・・・
squid起動
$ service squid start
SFTPでつなぐ
$ sftp -o "ProxyCommand connect -H basic認証のユーザ名@relayのIP:3128 %h %p" devのユーザー名@devのIP
とりあえず動いた。以上です
sftpコマンドでプロキシ経由で接続する方法メモ
squidでたてたプロキシサーバー経由でsftp使うときのメモ
$ sftp -o "ProxyCommand connect -H プロキシのIP:プロキシのポート %h %p" sftpユーザー名@sftpサーバーのIP
以上です
【squid】プロキシにパスワード認証を設定する
次回のために作業メモ
squidのプロキシにパスワード認証(Basic認証)追加
ユーザー作成
# 新規作成 $ htpasswd -c /etc/squid/passwd user # ユーザー追加 $ htpasswd -b /etc/squid/passwd user2 pass # ユーザー削除 $ htpasswd -D /etc/squid/passwd user2
# 追加 auth_param basic program /usr/lib64/squid/ncsa_auth /etc/squid/passwd acl password proxy_auth REQUIRED http_access allow password
再起動で設定反映
$ service squid restart
以上です