岡山女子エンジニア日誌スマートフォン用の表示で見る岡山女子エンジニア日誌プログラミングについて勉強したことを書きます。この広告は、90日以上更新していないブログに表示しています。2016」の2日目の記事です。月一で岡山スマホアプリ開発もくもく会(Android)を主催しております者です。この記事を書きながら、岡山スマホアプリ開発もくもく会を開催し始めてからもう一年経ったのか、と感じます。去年の今頃は開催してみたいと思い始めたぐらいだったような気がします。開催するまではかなり気張っていましたが、最近はゆるーーくもくもく会に挑んでしまっています。一年を機に、また来年気張って開催できるようにこの一年のもくもく会をゆるく振り返ってみようと思います。最初の一回目は、去年の一月に開催したのですが、図書館で技術本などを借りてきたり、かなり気張っていました。第二回からは技術本をわざわざ借りて用意するほど必要じゃないかな、と感じて持っている本だけ持っていくようになりました。LT(ライトニングトーク)第四回のときは気張ってLTを実施してみたりしましたが、慣れてないのでぐだぐだになってしまいました。いつかリベンジしたい、と思いつつ今年はできませんでした。来年こそはLTを成功させたいです。会のHP5月頃から岡山スマホアプリ開発もくもく会のHPを作ろう!と、考えていたのですが、未だ果たされていないです...。岡山スマホアプリ開発もくもく会でサーバーを借りてアプリ開発のテストなんかに使えたりしてもいいかなーなんて考えていたのですが、維持費のことを考えると手も足もでませんでした(言い訳)。これから一ヶ月ほど実家でゆっくりと育児休暇をとる予定なので、その間にHPのレイアウトでも作れたらなと考えております。第二回のときはかなり参加人数が少なかったですが、最近はだいたい安定して同じくらいの人数で集まっていただいています。何度か繰り返し来てくださる方や、遠方から遥々来てくださる方までいてとても嬉しかったです。会で参加してくださる方に会うといつも開催しててよかった、と思います。参加してくださる方にも少しでも参加してよかったと思ってもらえるようなもくもく会にしていきたいです。コミュニケーション第二回のときはシーンとなりすぎてしまって、もっと参加者同士で気軽に話せるような雰囲気作りを、と考えていました。会ですからもくもくしたい人もいる、という意見もいただいて、もくもく会でのコミュニケーションって難しいな、と感じました。会でベストなコミュニケーションとは...来年の課題です。まとめ思い返すと、本当にたくさんの方々に助けていただいたお陰で、一年間開催し続けられたな、と思います。本当にありがたいです。来年もちょっとずつよくして(迷走して?)いきながら、続けていけたらいいなと思っています。「定期開催で長く続くもくもく会」になれるのを第一目標で頑張っていきたいです。参加していただいた皆様、お疲れさまでした。お忙しい中のご参加ありがとうございました。お陰様で充実した時間を過ごすことができました(^^)参加していただいた方たちもそう感じていただけたのか不安ですが、無事に終えれた事にホッとしております。開催までJavaをしたことがない方でもAndroidアプリ開発ができるように、Javaの勉強からできるようにワークショップを作ろうか、とか色々考えていました。Studioの技術本とJavaの構文のメモでした。会場の準備は、会場となったギークハウス岡山の住人で参加者の方にしていただきました。本当にありがたいです・・・。次にギークハウス岡山で開催するときは、私が片付けます><いよいよスタート初めて主催したイベントなので、ドキドキしながらのスタートでした。スタートしてからは、それぞれやる事を決めてもくもくしていました。したり、談笑したり、質問したり、終始とてもいい雰囲気だったと思います。そんな感じだったので、開催する前のドキドキは安心に変わりました。会になってる・・・!!と感動しました。それもこれも、開催までの間にアドバイスしてくださった皆様、参加してくださった皆様、会場となったギークハウス岡山の皆様のお陰です!本当にありがとうございます!振り返って第一回「Androidもくもく会」は、私にとっては大成功でした。会場の様子の写真を撮り忘れてしまいました・・・。気付いたときにはすでに時遅し・・・。アンケートも準備しておけばよかったです・・・。Androidアプリ開発の初心者の方には、「まるばつクイズアプリ」を作ってもらう事にしました。毎回何か簡単に作れるお題を考えて、それを初心者の方の目標にしようと思っていました。今日のもくもく会で、技術本を読んで自分で目標設定してもくもくされている方がいたので、次からは技術本や解説サイトを準備して、それぞれで目標設定してもらうのがいいのかな、と思いました。手探りですが、少しずつ良くしていければいいな、と思います。最後に皆様、本当にありがとうございました!第二回もよろしくお願いいたします。04:03第一回「岡山Androidもくもく会」Tweet広告を非表示にするもっと読むコメントを書く2015-12-31ギー岡で振り返る2015もう今年の1月に何していたかとかは忘れてしまいました・・・(笑)3月くらいまでの記憶が曖昧です。2月までは頑張って授業受けてテストとレポートに追われていたと思います。3月は何してたかな・・・就職どうしようってなって、企業調べてたと思います。前期の授業は2つしかとってなかったです。6月くらいまで就活用にプログラム書いていました。結局完成させれなかったです。7月にギー岡に入居しました。それからは濃かったですねー。8月の頭にあったギークハウスデイに参加しました。8月下旬にあった福島ゲームジャムにも参加しました。9月・・・何してたっけな・・・多分、Androidを始めた月です!10月には、高梁ゲームジャムに参加しました。11月はあっという間に通り過ぎて行きました。12月もあっという間に通り過ぎました。Android開発講座に参加しました。Girlsに参加しました。振り返ると、今までギーク系のイベントに参加したことなかったのですが、今年になって初めて参加してとても楽しかったです!来年はもっとたくさんのイベントに参加したいです!ギー岡に入居したのは大きかったです。ギークな人と知り合えて、いろんな話を聞かせてもらえて本当に楽しいし、刺激になりました。皆様ありがとうございました。2015の16日目の記事です。ギークハウス岡山に住むまでのいきさつギークハウス岡山に住み始める前までは、周りに趣味でプログラミングしてる人なんていなくて、ずっと一人でプログラミングの勉強してきていました。私がプログラミングを始めたきっかけは、小さい頃からゲームが好きで、ゲームを作ってみたい!と思ったことからでした。大学に入るときにC++の本を買い、勉強し始めました。本を買ったはいいけど、そんなに読まずにネットで調べてC++の入門サイトで勉強していました。いう勉強方法になったのか今では覚えていませんが、今にして思えばネットで調べることに慣れるのに丁度良かったと思います。詰まったらしばらく放置して(1ヶ月ぐらいやってなかったり、2〜3日やってなかったり)、また再開して、でも分からなかったらまた放置して...って感じでかなりだらだら勉強をしていました。続けていたのは、バグがつぶせたときのスッキリ感が凄く気持ち良かったからだと思います。して勉強していたものの、きっかけとなったゲーム作りは全くできませんでした。それは、多分、自分の中で作りたいゲームがなかったからゲームを完成させるという具体的なビジョンが持てなかったからだと思います。そんな感じで特に何かを完成させるということはなくだらだら勉強していましたが、ずっと続けてきました。それは、何よりもプログラミングが楽しいと感じられたからだと思います。しているうちに「プログラミングをする仕事をしたい」、と思うようになっていきました。すればいいのか分かりませんでした。ネットで調べてみてもわからなかったし、周りにプログラミングをしている人もおらず、どうしていいのか分からないまま就職の時期を迎えました。プログラマーを募集しているゲーム会社を調べると、一次審査に作品の提出が必要だと書いてあって、作品を作ろうとするも完成させることができず、ただ締め切りが過ぎていきました。今年はもう無理だ、諦めよう、でもプログラマーになりたい...どうしよう、何か行動したい。考えていた時にたまたま深夜のテレビ番組でギークハウス岡山が紹介されていました。最初はこんなのもあるんだなーくらいにしか思っていなかったのですが、母にここ行けばいいんじゃない、と言われ(本人はきっと軽い気持ちで言ったのでしょうが)、自分の中でギークハウス岡山に入居するという選択肢ができました。考えているうちに、何か行動したいならこれはチャンスかもしれない、と思うようになると早速ギークハウス岡山のHPをググりました。HPを見ているうちに入居したら今の現状を変えられるかもしれない、と思うようになり、一応両親に相談してみると意外とあっさり許可が取れ、コンタクトをとってみることにしました。ギークハウス岡山に行った時に、プログラマーはいないと言われて少し面食らったのを覚えています。プログラマーが集まるイベントをギークハウス岡山で開催する、ということを聞いて入居を決意しました。ギークハウス岡山に住んでから初めて参加したイベントがギークハウスデイ2015で、そこでUnityを使ったアプリケーションの作成を一緒にさせてもらえました。他の人と一緒に開発する、というのは初めてでとても緊張したのを覚えています。今までずっと一人で勉強してきた私にとっては他の人と一緒に開発する、ということが新鮮で、凄く楽しかったです。そこで初めてアプリケーションを完成させる、という経験ができました。今まで何も完成させたことがなかった私にとってはそれが凄く嬉しくて、その時に初めてギークハウスに入居してよかった!と思いました。ギークハウスデイ2015を通して岡山Unity勉強会さんと知り合うことができ、福島ゲームジャムと高梁市ゲームジャムに参加することができました。そこでゲームを作って気づいたことがあります。私はやっぱり一人でのアプリケーション開発がかなり苦手だ、ということです。作るアプリケーションのアイデアがどうしてもまとめれないのです。今まで何も完成させることができなかったのは、技術が足りてないからだ、と思っていましたが、それだけじゃなく、作るものの構想ができてなかったんだな、と気付きました。一つ、今までゲーム開発ができたら楽しいんだろうな、と憧れも抱いていましたが、実際に作ってみると、ゲーム開発よりもプログラムの勉強をするほうが楽しい、ということが分かりました。これらは、ずっと一人でだらだらとしていたら気づけなかったことです。ギークハウスに住み始めてから、刺激的で貴重な体験をすることができました。ギークハウス岡山に住んでから変われたことだらだらと書いてしまいましたが、私がギークハウス岡山に住んで変われたことは、アプリケーションを完成させる経験ができたギークの人たちと交流を持つことができたプログラミングがより楽しくなったSNSの重要性が分かった(お恥ずかしながら、ごく最近です。イベントを開催する計画を立てて初めて分かりました。)本当に一人だけの独学には限界がある(ギークハウスに入居してから5ヶ月間の技術力の伸びは、3年間の独学より遥かに大きいです。びっくり!)などなど、挙げるともうきりがないです(笑)ギークハウスに住むことは、自分を変えるきっかけになりました。最後に貴重な経験をさせていただき、色々なことを学ばせていただけて、ギークハウスに入居してから関わってきた全ての方々に心から感謝します。ギークハウス岡山に入居してよかったー!!心からそう思います。岡山にAndroidのコミュニティがないので、作っていこうとしております。そのための活動として、1/17(日)にギークハウス岡山で「岡山Androidもくもく会」を開催します。Studio開発講座」に参加しました。香川支部こちらのイベントです!スピードについていけず(AndroidStudioも動かなくなったし・・・というのは言い訳ですね(><;))、とりあえず理解できたことをまとめようと思います。Generationをすると、getterの名前が「getmName」になってしまいます。ならないために、NamingPreficを設定する必要があります。[Preferences]を開きます。Generation]を開きます。prefix:]に「m」を書くといいみたいです。Injectionライブラリみたいです。Knifeを使うと、「findViewById」が楽にかける・「onClickListener」が楽にかけるみたいです。Structure]を開きます。次に、左の[Modules]>[app]を開き、上のタグの[Dependencies]を開きます。「+」をクリックするとライブラリを選ぶダイアログが出てくるので、そこで「butterknife」を検索すると、「com.jakewharton:butterknife:7.0.1」があるのでそれを選んで、「OK」します。Knifeのライブラリを取ってきます。終わるまでしばらくかかるので待ってあげてください。あとは、こちらのサイトを参考にしてください。下に「findViewById」が楽にかけるサンプルを載せておきます。//以下略まとめここに載せたもの以外にも、「リファクタリング」と「ユニットテスト(JUnit4)」の説明もされていましたが、よくわからなかったので、ここでは書きません。調べていつか記事を書こうと思います。この後に、出席者からあらかじめ伺っていた質問に答えられていました。Studioではじめる簡単Androidアプリ開発」をご紹介されていました。AndroidStudio1.5に対応していて、1月4日に発売されるそうです。お世話になった皆様、ありがとうございました。自分で作ったカスタムビューをレイアウトファイルで配置するまでの手順を書きます。カスタムビューを作ると、そのビューの使い回しができ、とても便利だと思います。カスタムビューを使うと、レイアウトファイルが複雑にならなくていいかもしれないです。AndroidStudioを始めたばかりの人でも分かりやすいように書いていきたいと思っています。調べていると、カスタムビューは二種類に分けることができるんじゃないか、と思いました。他では分けていないと思うので、一般的ではないですが、ここではカスタムビューをカスタムレイアウトとカスタムビューの二種類に分けて書いていきます。目次カスタムレイアウトカスタムビューstyleableプロパティの使い方まとめカスタムレイアウトカスタムレイアウトでは、ViewGroupクラスのサブクラスを継承したクラスを作ります。レイアウトxmlファイルを使ってカスタムビューをデザインできます。Javaでもコンポーネントの追加ができますが、ここでは紹介しません。ここで作るサンプルEditTextに文字を入力して「送信」Buttonを押すと、EditTextの下のTextViewがEditTextの内容に変わり、EditTextは空になります。res/layoutフォルダの中に、レイアウトファイルを作る。ViewGroupのサブクラスを継承したjavaクラスを作る。メインのレイアウトファイルにカスタムレイアウトを配置する。詳しい説明1.res/layoutフォルダの中に、レイアウトファイルを作る。res/layoutフォルダの中に作りたいカスタムレイアウトのxmlファイルを作る。/></LinearLayout>このレイアウトファイルは、以下の図のような構造になっています。ViewGroupのサブクラスを継承したjavaクラスを作る。}}CustomLayoutクラスは、ViewGroupクラスのサブクラスであるLinearLayoutを継承し、OnClickListenerインターフェイスを実装しています。LinearLayoutクラスは、先ほど作成したレイアウトのルートがLinearLayoutなので、継承させています。ViewGroupについては、こちらのサイトをご覧ください。OnClickListenerは、ボタンが押されたことを知るために実装させています。OnClickListenerについては、こちらのサイトを参考にさせていただきました。コンストラクタでは、まず、親クラスのコンストラクタを呼び出しています。this);この文では、先ほど作ったレイアウトファイルを設定しています。詳しくは、こちらのサイトをご覧ください。)関数では、テキストビューのテキストをエディットテキストの内容に変えて、エディットテキストを空にしています。メインのレイアウトファイルにカスタムレイアウトを配置する。サンプル「res/layout/activity_main.xml」(デフォルトからいじっていなければこの名前になっているはず。/></LinearLayout>このレイアウトファイルでは、先ほど作ったカスタムレイアウトを縦に3つ並べています。カスタムビューカスタムビューでは、Viewクラスを継承したクラスを作ります。メソッドの引数には、レイアウトファイルのIDだけでなく、Viewクラスのサブクラスも渡すことができます。先ほどのカスタムレイアウトでは、CustomLayoutクラスを渡すことができます。この記事では、setContentView(View)メソッドにクラスを渡す方法は省略させていただきます。ここで作るサンプルそれぞれのコンポーネントをタップすると、色が変わります。Viewクラスを継承したJavaクラスを作る。メインのレイアウトファイルにカスタムビューを配置する。詳しい説明1.Viewクラスを継承したJavaクラスを作る。}}Viewクラスを継承しています。コンストラクタでは、親クラスのコンストラクタを呼び、メンバ変数を初期化しています。カスタムビューでは、onSizeChanged()メソッドとonDraw()メソッドをオーバーライドする必要があります。onSizeChanged()メソッドでは、コンポーネントの元のサイズと変更後のサイズを得ることができます。onDraw()メソッドでは、コンポーネント上に画像や図形などを描画することができます。メインのレイアウトファイルにカスタムビューを配置する。/></LinearLayout>カスタムビューを縦に3つ並べています。全ての「android:layout_weight」に1を設定しているので、それぞれのコンポーネントの高さはルートのLinearLayoutの高さの三分の一になっています。独自のプロパティを設定するには、styleableプロパティを使います。先ほどのカスタムレイアウトにstyleableプロパティを設定し、汎用性を持たせてみます。ここで作るサンプルカスタムレイアウトのサンプルと比べると、Buttonのテキストが変わっています。「削除」Buttonを押してもTextViewのテキストが変わらないようになっています。「res/values」フォルダの中にxmlリソースファイルを作る。リソースファイルで定義したプロパティをCustomLayoutクラスで読み込む。メインのレイアウトファイルで、リソースファイルで定義したプロパティに値をセットする。「res/values」フォルダの中にxmlリソースファイルを作る。カスタムレイアウトでレイアウトファイルを追加したのと同様に、「res/values」フォルダの中に「custom_layout_attr.xml」を作成する。</declare-styleable></resources>declare-styleableラベルのname属性の値が識別子となります。プロパティを読み込むクラスと同じ名前にします。attrラベルでプロパティを定義します。format属性に設定できる値は、下の図の通りです。