2020年10月28日水曜日

[Android] "CREATE TABLE"する際にはcolumnを正しく設定しましょう

こんにちは、針山散策を今日もほのぼのと行います。


今回は、Androidでsqliteを使用していますが、


SQLiteDatabaseクラスを用いてinsert()実行した後に


query()するとハングしていました。


その対策をメモしておきます。


1. query()後にclose()メソッドを実行するようにしましょう。

2. SQLiteOpenHelperクラスを継承したクラス内で"CREATE TABLE"する際、

    COLUMNの数が登録しようとしている列合っているか確認しましょう。


1. query()後にclose()メソッドを実行するようにしましょう。

についてです。

こちらは、以下のように最後にclose()メソッドを実行して一度資源を解放しましょう。

    Cursor cursor = database.query(

       "Table_Name",

        new String[] {"column_1", "column_2", "column_3", "column_4", "column_5"},

       null,

       null,

       null,

       null,

       null

    );

    cursor.moveToFirst();    // カーソル行を先頭に

    cursor.moveToNext();    // カーソル行を進める

    ・・・                    // 処理

    cursor.close();           


2. SQLiteOpenHelperクラスを継承したクラス内で"CREATE TABLE"する際、

    COLUMNの数が登録しようとしている列合っているか確認しましょう。

についてです。

こちらは以下のように、列(column)の数を合わせておきましょう。ということです。


public class testHelper extends SQLiteOpenHelper {

private static final String SQL_CREATE =

   "CREATE TABLE " + Table_name + " (" +

           Database_id + " INTEGER PRIMARY KEY," +

           "column_1" + " TEXT," +

           "column_2" + " TEXT,"+

           "column_3" + " INTEGER,"+

           "column_4" + " INTEGER,"+

           "column_5" + " TEXT)";

@Override

public void onCreate(SQLiteDatabase sqLiteDatabase) {

sqLiteDatabase.execSQL( SQL_CREATE );

}


2020年10月23日金曜日

[全般] 処理と管理は分離させることに共感

こんにちは、針山散策を今日もほのぼのと行います。


今回は、要求定義書から今後の設計方針のノウハウ発掘ということで、

ググっていたところ、

以下のドキュメントを発見しました。


https://swquality.jp/temp/nagasakiqdg15_usdm.pdf


こちらは、USDMについてのドキュメントになります。


・・・・。


しかし、USDM自体知りませんでした。


こちらのUSDM (Universal Specification Describing Manner)のようで、

翻訳してみると、「作法を説明する全般仕様」です。


こじつけですが、

「作法を説明する全般仕様」→ 根本的な仕様 → 要求定義書 ということでしょうか。


こちらの特徴としては、要求定義書を作成するための指標のようです。


内容については上記リンク先を見ていただくことにして、


読んでいて最も共感したところは



・処理と管理は明確に分離する


です。


プログラムを組んでいると、管理用プログラム内で処理を行ったりしてしまう時が

たまにあります。

(その方がコーディングとしては楽な為)


しかし、それをやってしまうと保守性が悪くなってしまいます。


何か修正が必要になったとき、例えば制御用のレジスタ名で検索を掛けると、


複数ファイルの複数関数でヒットすると、一通り見ないといけなくなってしまうからです。


管理用プログラム内にヒットしていた場合は更に厄介で、影響度がその処理だけではなく、


管理側にも発生してしまいます。



[今日のまとめ]

・処理と管理は明確に分離しましょう。ファイル自体分離しておくと誤解もなくなります。


[今日のひとこと]

鶏むね肉を使用してチキン南蛮を作ってみました。

その際、肉をオーブンで焼くと固くなることもあり、

以下のようにすることで回避しました。

・フォークで100回鶏むね肉ブロックに突き刺す。

・牛乳、砂糖、しょうゆ、炭酸水に30分つける

結果として柔らかくなりましたが、水分が抜けてしまって

少しパサついてしまいました。

次は焼く直前に片栗粉を全体にも見込んでみようと思います。


2020年10月13日火曜日

[Android] [Java] アクティビティ上の部分レイアウトをフラグメントで行うことについて

こんにちは、針山散策を今日もほのぼのと行います。


今回は、Android開発において、アクティビティ上の一部分をフラグメントとして切り替え


られるようにしようとしましたが苦戦しました。


レイアウトデザインは、xmlファイルに作成していくことになるのですが、


フラグメントについては"<fragment>"のタグを使用するようにして


レイアウト内に入れることで一部分をfragmentとして開放できます。


ここではFrameLayoutとしています。


[xmlファイル]


<?xml version="1.0" encoding="utf-8"?>

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"

   xmlns:app="http://schemas.android.com/apk/res-auto"

   xmlns:tools="http://schemas.android.com/tools"

   android:layout_width="match_parent"

   android:layout_height="match_parent"

   tools:context=".MainActivity">

   

   …

   

   <FrameLayout

       android:id="@+id/container"

       android:layout_width="match_parent"

       android:layout_height="100dp"

       android:layout_marginBottom="60dp"

       app:layout_constraintBottom_toTopOf="@+id/button_QA"

       app:layout_constraintTop_toTopOf="parent"

       tools:layout_editor_absoluteX="5dp">


       <fragment

           android:id="@+id/fragment_here"

           android:name="aa.co.jp.sample.Fragment_here"

           android:layout_width="match_parent"

           android:layout_height="match_parent"

            />

   </FrameLayout>


</androidx.constraintlayout.widget.ConstraintLayout>


また、フラグメント切り替え対象は以下のリンク先を参照していただき、


"fragment_here"を置き換えたいフラグメントにreplaceするようにすれば


切り替わります。(実際は上書きされます。)


android:name("aa.co.jp.sample")はパッケージ名です。


パッケージ名は変えてしまうとビルドが通らなくなってしまいますので気を付けましょう。


[今日のひとこと]

最近、JAVAプログラミング能力認定試験2級の過去問を見ましたが

難しそうです。

簡単でも困るので、とりあえずとれるように模索していこうと思います。

AndroidStudio環境でJavaアプリを作っていこうと思います。

まずは暗記カードアプリでも作ります


2020年10月5日月曜日

[動画編集] Windows Liveが無い

こんにちは、針山散策を今日もほのぼのと行います。


今回は、Youtubeにお試しで動画アップしようと思いました。


その際、動画編集を行おうとしましたが、


参考にしていた本の内容が古かったらしく、Windows Liveアプリ


が紹介されていたのですが、こちらアプリはサポート終了とのことです。


仕方がないので、それに代わる動画編集ソフトを使用しようと思います。


以下が参考になったランキングです。

https://my-best.com/2745


今回は、shotcutを使用してみようと思います。

https://shotcut.org/


[今日のひとこと]

国勢調査をウェブ経由で提出しました。

個人名やら、家族構成やらを記入しないといけないので

個人情報保護やセキュリティは大丈夫か懸念しながら

回答しました。

区役所が知っているはずなのに、やる必要あるのか

疑問に感じました。