2014/11/10

【iOS】mapkitのmemo


ハマったのでmemo iOS7 iOS8 で確認

吹き出しタップ時のEvent
(void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control 

ピンタップ時のEvent
-(void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view


標準の吹き出しをOKにする。
annotationView.canShowCallout = YES;

吹き出しの中のButtonの設定(これがないと吹き出しのタップEventが拾えない?)
UIButton *bt = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
annotationView.rightCalloutAccessoryView = bt;

Buttonのアイコンなら変更は可能。
[bt setImage:[UIImage imageNamed:@”アイコンの名前”] forState:UIControlStateNormal];

2014/10/30

【android】PropertyAnimation OS 3.0以上

android で今までアニメーションって、Viewアニメーションを使っていたのだが

3.0以上から新しいアニメーション方法が実装されていたらしい。

しかも、アニメーション後にちゃんと見た目だけじゃなく。Viewの実態も動いてくれるとのこと。

昔はよく、アニメーションをして止まったら、指定の位置までViewのXY(Marginとか)を動かしていたっけ。。。

リファレンス。
http://developer.android.com/guide/topics/graphics/prop-animation.html

ちゃんとXMLでも定義が出来そう。

あれでもさ、LayoutGroupの影響は受けないのかな?

RelativeLayoutとかで相対指定していた場合の挙動はどうなるんだろ。

座標系も、LayoutGroupからの位置なので、Displayの絶対座標からなのか、

検証しないとなぁ。

ああ、あとアニメーション中(移動中)のViewはクリッカブルにできるのかな?

いっぱい確認したいことがあるや。

下記の用な形で行ける
mView.animate().x(100f).y(100f);


下記を駆使していけば良いや。
AnimatorSet
ValueAnimator
ObjectAnimator
TypeEvaluator

2014/10/09

【iOS】キーボードを開く(メモ)

メモ

iOS キーボードをプログラムから開く
[textView becomeFirstResponder];

2014/08/28

Android WebView ズームコントロール非表示【2026年最新実装】

WebView でピンチイン・ピンチアウトは有効にしたいけど、ズームボタンは邪魔。2014年の古い記事では廃止済み API が紹介されていた。2026年の正しい実装方法をまとめておく。

どちらのフレームワークを使うかで実装が異なる。


2026年:2つの実装パス

パス A:推奨Jetpack Compose を使う場合

@Composable
fun WebViewScreen() {
    AndroidView(
        factory = { context ->
            WebView(context).apply {
                settings.apply {
                    javaScriptEnabled = true
                    setSupportZoom(true)
                    setBuiltInZoomControls(true)
                    setDisplayZoomControls(false)  // ← ズームボタン非表示
                    domStorageEnabled = true
                    databaseEnabled = true
                }
                webViewClient = WebViewClient()
            }
        },
        modifier = Modifier.fillMaxSize(),
        update = { webView ->
            webView.loadUrl("https://example.com")
        }
    )
}
✅ メリット:
  • 最新フレームワーク
  • 状態管理が容易
  • テストしやすい

パス B:レガシー従来の View 系を使う場合

ステップ 1:XML レイアウト

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

    <WebView
        android:id="@+id/webview"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</LinearLayout>

ステップ 2:Activity/Fragment で設定

class WebViewActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_webview)

        val webview = findViewById<WebView>(R.id.webview)
        val settings = webview.settings

        // ピンチイン・ピンチアウトを有効
        settings.setSupportZoom(true)

        // ビルトインズームコントロールを有効
        settings.setBuiltInZoomControls(true)

        // ズームボタンを非表示 ← ここが重要
        settings.setDisplayZoomControls(false)

        webview.webViewClient = WebViewClient()
        webview.loadUrl("https://example.com")
    }
}

2014年の実装 vs 2026年の実装

項目 2014年 2026年
フレームワーク View(XML + Java) Jetpack Compose(推奨)or View
API setBuiltInZoomControls() 同じ(廃止されていない)
非表示方法 リフレクション使用(廃止) setDisplayZoomControls(false)
コード行数 5~10行 Compose: 15行, View: 8行
セキュリティ 基本的 WebViewClient で制御強化可能
パフォーマンス 標準 Compose は仮想化対応

よくある落とし穴

1. setDisplayZoomControls() を設定し忘れ

❌ 悪い例:ズームボタンが表示される
settings.setSupportZoom(true)
settings.setBuiltInZoomControls(true)
// setDisplayZoomControls(false) がない!
✅ 正しい例:ズームボタンが非表示
settings.setSupportZoom(true)
settings.setBuiltInZoomControls(true)
settings.setDisplayZoomControls(false)

2. JavaScript が必要なサイトの場合

settings.apply {
    javaScriptEnabled = true  // ← 追加が必要な場合がある
    setSupportZoom(true)
    setBuiltInZoomControls(true)
    setDisplayZoomControls(false)
}

3. セキュリティ設定を忘れずに

settings.apply {
    // 安全でない HTTP を制限(Android 9+)
    setSupportZoom(true)
    setBuiltInZoomControls(true)
    setDisplayZoomControls(false)

    // 追加セキュリティ設定
    mixedContentMode = WebSettings.MIXED_CONTENT_NEVER_ALLOW

    // ジオロケーション無効化
    setGeolocationEnabled(false)
}

webview.webViewClient = object : WebViewClient() {
    override fun shouldOverrideUrlLoading(
        view: WebView?,
        request: WebResourceRequest?
    ): Boolean {
        // URL をフィルタリング
        return false
    }
}

API レベル別の対応

API レベル サポート 対応方法
API 11+ setDisplayZoomControls(false) 推奨
API 19+ 同上
API 21+ 同上
API 29+ Jetpack Compose への移行を検討

実装チェックリスト

Jetpack Compose を使う場合

  • ☑ AndroidView でWebView をラップ
  • ☑ setSupportZoom(true)
  • ☑ setBuiltInZoomControls(true)
  • ☑ setDisplayZoomControls(false)
  • ☑ WebViewClient を設定
  • ☑ JavaScriptEnabled が必要か確認
  • ☑ セキュリティ設定(mixedContentMode など)

View 系を使う場合

  • ☑ WebView を XML レイアウトに配置
  • ☑ findViewById で取得
  • ☑ setSupportZoom(true)
  • ☑ setBuiltInZoomControls(true)
  • ☑ setDisplayZoomControls(false)
  • ☑ WebViewClient を設定
  • ☑ JavaScriptEnabled が必要か確認
  • ☑ セキュリティ設定(mixedContentMode など)

2026年への移行:Compose 推奨理由

【従来の View 系】

  • レガシーコード
  • テストしづらい
  • 状態管理が複雑

【Jetpack Compose】(推奨)

  • モダンなフレームワーク
  • テスト容易
  • 状態管理が簡潔
  • Android Studio の Compose Preview で動作確認可能

既に View 系で実装済みなら無理に移行は不要だが、新規プロジェクトなら Compose を検討する価値あり。


参考資料

2014/05/17

本を手に入れました。

意外と為になりますね。

アプリ内課金+広告 iPhone プログラミング







2014/05/02

Androidアプリのセキュア設計・セキュアコーディングガイド

メモ

後で読もう。

日本スマートフォンセキュリティ協会
Android Application Secure Design/Secure Coding Guidebook

・http://www.jssec.org/report/android_securecoding_en.html

http://www.jssec.org/dl/android_securecoding_en.pdf



2014/04/24

Beacon android のメモ

メモ

対応OSは4.3以上。

http://www.gaprot.jp/pickup/ibeacon/abeacon/

2014/04/15

この機能はいらない。

何かしら、内部の都合かと思うが♪
ログインしてこの画面が出ると
何も出来ないから辛い。

検索する時のコツ

皆さん、

googleで技術的な情報を調べる(検索)時はどうやってますか?

すごく、個人的な方法ですが、ちょっとお教えしたいと思います。

スマホ関連だと、すぐに情報が新しくなって、

せっかくソースコードのサンプルを見つけたけど、

最近のOSでは動かなかったりする事が多々あるかと思います。

android関連なら、

「android  (調べたい物) 2014」

見たいな感じで、年を入れると、最近の情報がヒットしやすいと思います。

是非、お試しください。

もっと良い方法があれば教えて下さい。


android開発環境構築(Win版)

androidアプリの開発環境構築(Win版)

一番てっとり速い方法 !!

android公式サイトからDLする。
EclipseのADTが設定済みの物がすでにアップされているのでそれを利用した方が良い。

ネットで調べると古いのが多いから、

未だに、Eclipseの公式サイトからダウンロードして

設定している人が大勢いると思うんだ。

まぁ悪い事では無いけど。

Eclipseの日本語化はまたの機会に。

お急ぎの方は、

「Eclipse Pleiades」 で検索してみてください。

でも、Xcodeも日本語じゃないからいっその事、英語のままでってのも有りかな。

ちょっと。

進撃の巨人 自由への咆哮

現在のイベント無し。

運営さん、やる気有るんですか?

CMで金使い果たしたとか無いですよね?

0件は寂しすぎますよ。

2014/04/12

模様替え。

模様替えしました。

暇なんで。

えー、暇でした。

なんか面白い配置は無いかなぁ。

2014/04/08

レイアウト変更

タイマーが無くて、

やること無くなってしまったんで、

レイアウト変更してみました。

壁の強化が追い付いていません。

てかこのアプリは巨人の生成している間が暇でしょうがない!!


巨人生成中は別アプリをやれって事かなぁ。

2014/04/07

強化期間について。

本拠地の強化期間4日とか、耐えられるかどうか…。
待てない人は課金しろって事だよね。
タイマーも一括利用ではなく、
分割で利用出来たらいいのに。

2014/04/03

androidのOS

androidのOS別の統計が更新されていました。
OS2.3が17.8%しか、いません。
新規のアプリ開発時はもう4系からでも良さそうな気がします。

ただし、これはグローバル(世界)な値なので、
日本のみを対象にした場合は
もっと、2.3系は多い事が予想されます。
知り合いでいまだに、初代Xperiaを利用している人がいます。

公式はここから確認出来ます。








--------------------------------------------------------
4月

VersionCodenameAPIDistribution
2.2Froyo81.1%
2.3.3 -
2.3.7
Gingerbread1017.8%
3.2Honeycomb130.1%
4.0.3 -
4.0.4
Ice Cream Sandwich1514.3%
4.1.xJelly Bean1634.4%
4.2.x1718.1%
4.3188.9%
4.4KitKat195.3%
2014/05/29 追記
5月
VersionCodenameAPIDistribution
2.2Froyo81.0%
2.3.3 -
2.3.7
Gingerbread1016.2%
3.2Honeycomb130.1%
4.0.3 -
4.0.4
Ice Cream Sandwich1513.4%
4.1.xJelly Bean1633.5%
4.2.x1718.8%
4.3188.5%
4.4KitKat198.5%

2014/07/14 追記 
6月分を忘れてしまいました。


7月
VersionCodenameAPIDistribution
2.2Froyo80.7%
2.3.3 -
2.3.7
Gingerbread1013.5%
4.0.3 -
4.0.4
Ice Cream Sandwich1511.4%
4.1.xJelly Bean1627.8%
4.2.x1719.7%
4.3189.0%
4.4KitKat1917.9%

2014/08/13追記

8月
VersionCodenameAPIDistribution
2.2Froyo80.7%
2.3.3 -
2.3.7
Gingerbread1013.6%
4.0.3 -
4.0.4
Ice Cream Sandwich1510.6%
4.1.xJelly Bean1626.5%
4.2.x1719.8%
4.3187.9%
4.4KitKat1920.9%
2014/09/11追記

9月

VersionCodenameAPIDistribution
2.2Froyo80.7%
2.3.3 -
2.3.7
Gingerbread1011.4%
4.0.3 -
4.0.4
Ice Cream Sandwich159.6%
4.1.xJelly Bean1625.1%
4.2.x1720.7%
4.3188.0%
4.4KitKat1924.5%
2014/12/25追記 
12月
VersionCodenameAPIDistribution
2.2Froyo80.5%
2.3.3 -
2.3.7
Gingerbread109.1%
4.0.3 -
4.0.4
Ice Cream Sandwich157.8%
4.1.xJelly Bean1621.3%
4.2.x1720.4%
4.3187.0%
4.4KitKat1933.9%

2014/04/01

スマホから

スマホアプリからの投稿テスト。

住み分け

google+とBloggerの
住み分けはどのようにすれば良いのだろうか?

google+は友人同士のつながり、Bloggerはブログで割り切るしか無いのか?

雪の日の菊名駅


以前撮影した動画の紹介。

横浜線の菊名駅、数十年ぶりに降った雪の日です。
あまりの寒さにホームから人がいなくなりました。

初投稿

さて、ネタが無い。