radioc@?

レディオキャットハテナ

【勉強会メモ】関西Javaエンジニアの会(関ジャバ) '17 9月度

kanjava.connpass.com

日時:2017/09/15(金) 19:00 〜 21:00

場所:株式会社ロックオン大阪本社

テーマ:作ったものを語ろうぜ!自作アプリ / サービス発表会

ということで、今回はJavaはほぼ関係ない会でした。個人でアプリを開発するうえで、何をモチベーションとしたか?何が得られたか?などの実体験からくる知識やエピソードが共有された。技術要素はやや少ないが、リアルな情報で刺激は得られた。

趣味のアプリ開発チームを継続させるには

発表者:@kitkat @ogiarisan @tkpj2002(Jun Nishida)

www.slideshare.net

概要

活動内容

  • 3〜5名のアプリ開発
  • 毎週1回、5時間程度
  • 半年続いている

きっかけ

  • 最初は勉強会だった
  • 何を勉強するかのテーマがない
  • 集まる人のやりたいことが一致しない

⇒サービス作ろう

チームについて

  • チーム名:Matcheam
  • メンバー:10名(常時参加は3〜5名)
  • アプリの概要:フットサルがしたい人のマッチングサービス

アプリの目的

  • 自分のチームと対戦相手をマッチング
  • 人数が足りない時参加者を募集
  • マッチング情報をスムーズに共有
  • フットサルしたい人がしたい時にすぐできる

↑元にエレベータピッチ作成

チーム作り

  • 1人での趣味の開発は詰まったら挫折しやすい
  • モチベーション継続が難しい

⇒チームで趣味の開発をする

  • イデア・技術で助け合う
  • 自分では開発できない時も他の人ができる
  • 自分だけモチベーションが下がっても他の人のモチベーションでチームはまわる
  • 学生のサークルみたいで楽しい

チームで開発を続ける

①参加を強制しない

  • ふらっと参加する人も受け入れる
  • 参加しない人にもslackで連携

②フラットな関係性

  • 上下関係が無いのが大切

③本気で遊ぶ

  • 仕事ではないので本気で開発しなくて良い
  • どうせならオシャレに開発

重要なのは「ゆるさ」を保つこと

  • ルールを作って守るほうが考えなくていいし楽
  • モチベーションの維持?
    • 維持をしようとしない
    • 執着すればするほどしんどい
    • 下がった時は別のことをする

運営テクニック

どこでやるか?⇒チームで集まる場所が無い

某F社の会議室を借りれることになった ⇒F社の社員が次々退社し別の場所を探すことに

1箇所では安心してはいけない

メンバーの会社を中心に

  • コワーキングA社⇒支援金もらっている
  • N社の会議室

支援金大事

  • OSSしか使ってない
  • フリーのサービス

⇒お金いらない?

⇒金の切れ目が縁の切れ目

  • 備品
  • コワーキングの場所代

ランニングコストが意外と高い(1回と安いが毎週だと続かない)

スポンサー:アローラ http://www.allora.inc.jp/

お金が続けばうまくいく

  • Slackのリアクションで出欠を取る
  • 毎回欠かさず振り返り、毎回改善
  • ポモドーロで効率アップ

技術要素に対するアプローチ

  • 基本は勉強会からスタートしているので勉強優先
  • 開発スピード < 技術の勉強

技術要素

  • SpringBoot
  • Thymeleaf
  • H2
  • jOOQ
  • Gradle

jOOQ…全く知らなかった

  • 未知の技術への挑戦⇒公式ドキュメントを見る
  • 俯瞰でチームの状況を見てくれる人がいると良い

検証用のリポジトリ

  • プロダクションとは別にリポジトリを作って何ができるか検証
  • リポジトリが自分たちで作ったドキュメントになる

技術を学ぶことも勉強になるが未知の技術の習得の仕方も勉強になる

実際に作りたいサービスで使うから習得しようと本気になる

やりたいことがあればチームを作ろう

補足

Q:スポンサーの交渉は?

  • 当時仕事をしていた関係で社長と交渉
  • スポンサー会社の社員さんもメンバーに参加
  • 社長は社員に勉強させたかった

Swiftはろーわーるど…のついでにアプリ作ってみた

発表者: @hyperkinoko(松本キノコ)

speakerdeck.com

作っているもの

アプリの概要

フロー

  1. 食べ物などを製作して撮影⇒つぶやく
  2. 写真はDropbox

課題

  • 写真が数年分たまって管理できない
  • Dropboxにたまった写真の読み込みだけで1分

解決策

つぶやいた時のハッシュタグでフォルダ分けしたい

要件を満たすアプリがない ⇒アプリがなければつくればいい

⇒当時学習中だったSwiftで開発

開発の概要

Swiftの特徴

  • extensionめちゃ便利
  • null安全
  • 後方互換はほぼ無い

Xcodeについて

  • Swift3のリファクタリングができない
  • Intellij IDEAに慣れるとコード補完などがモッサリ感じる
  • storyboardは使いやすい
  • ちょっとした紙芝居アプリが作れる

参考図書

①「これからつくるiPhoneアプリ開発入門」

これからつくる iPhoneアプリ開発入門 ~Swiftではじめるプログラミングの第一歩~

これからつくる iPhoneアプリ開発入門 ~Swiftではじめるプログラミングの第一歩~

  • サンプルアプリのボリュームが多い
  • 文法の細かい説明は少なめ

②詳細!Swift3 iPhone アプリ開発入門ノート

  • 内容的には可もなく不可もなく
  • 文法の解説は詳しい
  • ①の補完

③詳解Swift

詳解Swift 第3版

詳解Swift 第3版

  • 言語仕様や文法を徹底解説
  • 公式ドキュメントを一通り抑えた感じ

アプリの公開

アプリ公開のために変えたところ

  • UI作り込み⇒外注
  • 些細なバグ修正
    • 自分では起こさない、気にならないようなバグ
    • 手持ちの環境で再現できないバグ
  • 端末対応
    • サイズによる見え方の違いや操作性

アプリの公開

アプリを公開してよかったこと

  • アプリが名刺代わりになる
    • これぐらいの技術力があるという証明
  • 技術力が飛躍的に上がる
    • 公開するとなると自分用では済まないのでちゃんと勉強する
  • やりきることで自信がつく

今後

  • Android
    • Kotlinで書く?
  • サポートページの充実

メシシェア

appsto.re

Yomoo!ってアプリを作ったよ!

発表者: @s_kozake(こざけ)

speakerdeck.com

アプリの概要

なぜ作ったか

  • 朝活で技術書を読んでいる
  • 自分のアプリを持ちたい

アプリを作った結果

  • 朝活ができなくなった
  • 本を読む時間がなくなった
    • 自分に必要な本、記事だけを読むようになった
  • アプリによってスキマ時間を活用できるようになった

Yomooo!

本よみの進捗を見える化するアプリ

(ダイエットアプリに影響を受けている)

youtu.be

アーキテクチャ

サーバサイド

アプリ

  • Ionic(ハイブリッドアプリ)
    • Cordova
    • Angular

サーバ側技術

  • JHipstar
    • Yeoman generator
    • Spring Boot + Angular

開発のお話

開発期間:6月半ば頃〜現在(現在α版)

  • ①やりたいことを洗い出す
  • ②画面イメージを書いてみる
    • Keynote(Sketch使いたかったが難しそう)
    • 画面イメージを書くと具体的なイメージがわきやすい
  • ③画面モックをつくる
    • 技術検証も兼ねてIonicで紙芝居作成
    • モックを作ることで具体的な要求イメージと操作性への要望がわく
      • モックを作ると完成した気になってしまう
  • ④データ・モデルを作成する
    • 画面に不備がないかを確認
    • JDL-Studioを使用

開発方法

アプリ

  • ionicのCLIで作成
    • ionic start コマンドで雛形を選択し作成
    • サンプルがたくさん。参考になる。

サーバ

  • yoman generatorでWebアプリの雛形ができる

JHipsterについて

  • 認証、認可の仕組みが最初から実装されている
  • アプリケーション管理の機能も用意されている
    • JVMの状態やHTTPリクエスト数など
    • ログの設定や確認変更
    • Swagger UIによるWebAPIドキュメントを表示できる
    • 開発モードで起動した場合はデータベースを選択し内容を確認できる
    • JDL-Studioで作成したJDL Fileをjhipster import-jdl コマンドで作成してもらう
      • CRUD画面の作成
    • swagger-codegenを使うとWebAPIの定義からAngularのHTTP通信用コードを自動生成

苦労・工夫した点

Chart部品

  • Chart.js
    • シンプルすぎてやりたいことができない
  • Canvas.js
    • 個人利用のみ無料なことに気づいた
    • ライセンスはきちんと確認
  • Vis.js⇒採用
    • ズームなどができる
    • モバイルの相性もいい
    • MTIライセンス

JHipstarの自動生成ソースをどうするか

  • 自動生成したソースをいじると管理画面が壊れる
  • 極力触らない

参考書籍・サイト

HTML5ハイブリッドアプリ開発実践入門

[iOS/Android対応] HTML5 ハイブリッドアプリ開発[実践]入門 (Software Design plus)

[iOS/Android対応] HTML5 ハイブリッドアプリ開発[実践]入門 (Software Design plus)

HTML5ApacheCordovaで始めるハイブリッドアプリ開発

HTML5とApache Cordovaで始めるハイブリッドアプリ開発 (CodeZine BOOKS)

HTML5とApache Cordovaで始めるハイブリッドアプリ開発 (CodeZine BOOKS)

Angular

公式サイトとGitbook

↓これから読む

Angularアプリケーションプログラミング

Angularアプリケーションプログラミング

SpringBoot

パーフェクト Java EE

パーフェクト Java EE

JPAの部分だけ

JHipster

  • 公式サイトが情報源
  • minibookもおすすめ(無料)

まとめ

  • 知るとできるは違う
  • 失敗しても確実に成長する
  • 今後使いたい技術で開発するとレバレッジが効いておすすめ

補足

  • Cordova、Angularなどは頻繁に更新されるが更新は毎回やっている
  • Cordovaプラグイン
    • だいたい揃っている
    • プラグインなければ自分で作る
    • ネイティブとの境目はあまりない印象

つねまげ家のピンチ(LT)

発表者:tunemage

GIFMAKERという作成中アプリのデモ

製作期間4,5時間

ポイント

  • 欲をすてる
  • ベタな技術で作り切る

所感

全体を通して感じた事は自分(たち)のアプリを開発するうえで一番重要なのは作り切ることだと実感。そのうえで自分の課題感や目的とすりあわせて、勉強したい技術を使ったり、楽しく継続できるような手法を選択するなどは作り切るための手段として選択するのが良さそう。ベタな技術でいいので短期間で実現させるのも1つの選択肢だと感じた。また、アプリを公開することで一般のユーザーに向けた製品開発に近いプロセスを取ることになるため意識が高まるというのも確かにありそう。作った物のアウトプットをどうするかも重要かもしれない。