つかさのBlog@hatena

技術系ブログのはず

Xamarin 有償トレーニングに参加しました

f:id:tsukasa-labz:20180716205906p:plain

Xamarinとは

Xamarin(ザマリンと読みます)とは、Gnome,Monoの開発者であるMigeldeIcaza(ミゲル・デ・イカザ)氏が立ち上げた企業名であり、C#でAndroid,iOS,Macのネイティブアプリを作成できる開発ツール郡(Xamarin.Android、Xamarin.iOS、Xamarin.Mac、XamarinStudioなど)のブランド名です。

Xamarin 日本語情報より引用

参加コース

初級 2日コース
Xamarin を使用した iOS、Android クロスプラットフォーム対応のモバイルアプリの開発トレーニング

XLSOFTより引用

講座概要

Visual Studio から Xamarin を使用し、iOS (iPhone, iPad) や Android 向けのネイティブアプリを、C# で開発する方法を習得します。

XLSOFTより引用

1日目

Xamarin 概要
  • Visual Studio + Xamarin インストールの注意点
Xamarin.iOS で iOS アプリの作成
  • ユーザーインターフェースの開発
  • ビジネスロジックの開発
  • アプリケーションの実行とデバッグ
iOS/Android クロスプラットフォーム アプリの開発
  • ロジックの共通化
  • Xamarin ネイティブ、Xamarin.Forms の違い

2日目

Xamarin.Android で Android アプリの作成
  • ユーザーインターフェースの開発
  • ビジネスロジックの開発
  • アプリケーションの実行とデバッグ
Xamarin Forms 概要
  • ユーザーインターフェースの開発
  • ビジネスロジックの開発
  • アプリケーションの実行とデバッグ

受講した感想

1日目

進行はテキストを書き写す形で進められました。
内容が濃く、特に初日のXamarin.Nativeはネイティブ開発の知識が必須となるため、中々理解出来ませんでした。
Android開発は2012年頃、少しだけやっていたのでまだ何とか理解できましたが、iOSアプリ開発に関しては一切やったことがありません。
開発用にとその昔購入したiPhone 5Sがありますが、正直ほとんど使っていないので、iOSアプリの一般的なUIすら理解していません。
講師の田淵さんから「普段からAndroidとiPhone両方使っておいてください」と言われましたが、全くもってその通りだと思いました。
サッカー未経験者がいきなり監督をやるようなものでしょうか。
普段からiPhoneを使用していないのにiOSアプリを作るのは難しいですね。
ちなみに講師の田淵さんは普段からAndroid端末とiPhoneを併用されているそうです。

2日目

2日目のXamrin.FormsはXamarin.Nativeと比べ、使用できるコントロールが各プラットフォームで使用できるコントロールの最大公約数になるなどの制約はあるものの比較的簡単に進められました。
各プラットフォーム固有の機能(センサーなど)を使用する場合には当然、ネイティブの知識が必要になりますが、JSON形式のデータを取得してListViewに一覧を表示→詳細情報を表示、音声読み上げを行うアプリではプラットフォーム固有の処理が無いため、1ソースでAndroidアプリとiOSアプリを作ることができました。
f:id:tsukasa-labz:20180716204032p:plain f:id:tsukasa-labz:20180716204040p:plain ちょまど氏のリポジトリより

環境面

VisualStudioとXamarinがインストール済みのWindowsノートPCを持参しました。
iOSアプリの開発を行うにあたり、会場で用意して頂いたMacBookProにVisualStudioから接続し、シミュレータで動作確認を行いました。
この接続が不安定で、ID/パスワードが合っているにも関わらず、何度か接続しないといけなかったり、頻繁に接続が切れていました。
iOSアプリの開発やリリースにはMacが必要になることなどを考えると、Macを購入しVisualStudio for Macで開発するのが良いかと思います。
環境構築で躓くと心が折れてしまいますので。

感想

朝から晩まで2日間みっちりでしたので、正直結構疲れました。
受講人数が数名でとても質問しやすい雰囲気でした。
Xamarinから脱線してIoTやチャットボット、ガジェットの話題まで雑談でも勉強になりました。
講師の田淵さんが大きめのピアスをされていて見た目がいかつい感じでしたが、喋り方がとても優しい感じだったのが印象的でした(笑)

講座情報

  • 場所:泉岳寺
  • 期間:2日間
  • 時間:10:00~17:30
  • 費用:97,200円 (税込)

持ち物

  • ノートPC(VisualStudioを事前にインストール ※1)

参考書籍

私のお昼をちょっと豪華にしてもいいよという方は下記から

田淵さんのお昼をちょっと豪華にしてもいいよという方はこちらから

※1
「.NETによるモバイル開発」にチェック f:id:tsukasa-labz:20180716183424p:plain

Ruby Associationに寄付してみました

f:id:tsukasa-labz:20180522220724p:plain
Ruby Association

Ruby Associationとは

Ruby Associationは、プログラミング言語Rubyの普及と発展のための非営利団体です。
Ruby関連のプロジェクトやコミュニティ、ビジネスの関係を強化し、Rubyの利用に関する諸問題の解決に取り組みます。

個人寄付

Rubyアソシエーションは、Rubyの普及・発展を目指す非営利の団体です。事業費の多くは企業や個人様からの協賛金により賄われています。
Rubyアソシエーションが実施している事業に賛同支援していただいける個人からの寄付を随時受け付けています。

Ruby Association Supporters

Ruby Association Supportersとは当財団の寄付活動の呼称です。
寄付をしていただいた方はその年度毎にサポータとして芳名録(任意)に掲載させていただきます。
f:id:tsukasa-labz:20180522222110p:plain 2018年度 Ruby Association Supporters

寄付の額

一口5000円から受付しております。

寄付控除の取り扱い

一般財団法人であるため「寄付控除」の対象となりません。

なぜ寄付したのか

ふとしたきっかけで、#シャボン玉ツイート に寄付をした際、Rubyにも寄付できないかと考えました。
Ruby技術者認定試験の運営等を行っているRuby Associationに個人寄付ができるということで、一口(5000円)寄付してみました。
寄付を申し込むと振込先の口座情報がメールで送られてくるのですが、私の場合は迷惑メールに振り分けられており対応が遅れました。
Ruby Associationへ寄付を検討されている方は参考までに。

私は普段、街頭募金等を含め、寄付は一切してきませんでした。
しかし、今後は気になるOSSコミュニティやWEBサービス、アプリ等へは積極的に寄付をしていきたいと思います。
次はバージョン1からお世話になっているFirefox辺りにでも。


サクラエディタで文字コードを変更する方法

サクラエディタとは

サクラエディタ ( Sakura Editor )は、Windows上で動作する高機能な日本語テキストエディタです。
ソフトウェア開発のためのソースコード編集にも向いており、充実したマクロ機能、複数ファイル指定のGrep機能、高度なカスタマイズ機能といった特徴があります。
MS Windows 95/98/NT/2000/XP/Vista/7の日本語版が必要です。

OSDNより引用

一時的に文字コードを変更する方法

1. 赤枠部分をダブルクリック

f:id:tsukasa-labz:20180317184819p:plain 2. ダイアログで任意の文字コードを指定
3. OKをクリック

f:id:tsukasa-labz:20180317184825p:plain

恒久的に文字コードを変更する方法

1. ツールバーから「設定(O)」をクリック
2. 「タイプ別設定(Y)...」の順にクリック
3. ウィンドウで任意の文字コードを指定
4. OKをクリック

f:id:tsukasa-labz:20180317184836p:plain

総括

サクラエディタは無料で使えるため、SIer御用達のツールで様々な会社で使用されています。
私は自宅でも使用しておりますが、デフォルトの文字コードがSJISになっており色々と不都合がありました。
今更ながら恒久的に文字コードを変更する方法を調べたため、メモ。

その他

サクラエディタのダウンロードは下記のバナーより

Monacaとクラウドデータベースを連携してみよう!オンラインセミナーの感想

クラウドデータベースを使ってみよう!

f:id:tsukasa-labz:20180317150600p:plain

ニフクラとは

f:id:tsukasa-labz:20180217153020p:plain

ニフクラとは、VMwareを基盤とした国産のパブリッククラウドサービス。
6,000件以上※のお客様のITインフラやデジタルビジネスを支えています。
サーバーの追加・削除やスペック変更は、すべてWeb経由でオンデマンドに行うことが可能です。
※2017年10月末時点での件数となります。

公式サイトより引用

mBaaSとは

mBaaS(mobile backend as a Service)とは、スマートフォンアプリでよく利用される汎用的な機能をクラウドから提供するサービスです。
クラウド上に用意された機能をAPIで呼び出すだけで利用できるので、サーバー開発・運用不要でよりリッチなバックエンド機能をアプリに実装することができ、工数削減によるコストカット・スピードアップに貢献します。

公式サイトより引用

セミナー概要

問い合わせフォームをイメージしたサンプルアプリを通して、クラウドデータベースへの保存と検索の方法を学んでいきます

f:id:tsukasa-labz:20180317160451p:plain

セミナーテキストより引用

今回利用するツール

Monaca
ニフクラ mobile backend(mBaaS)

《アプリ側》Monaca のすごいところ

  • 無料で使える!
  • iOS / Android 同時に開発可能!
  • いつでもどこでも、ブラウザで開発OK!
  • mBaaSのSDK導入がクリックだけで簡単に!

《サーバー側》mBaaS のすごいところ

  • 無料で使える!
  • バックエンドの開発・運用は一切不要!
  • コントロールパネルからクラウドの状況をパッと確認できる!

受講した感想

1時間の無料オンラインセミナーということで、アプリのテンプレートをインポートし進行して行きました。
この辺りはアシアル社主催の他のセミナーと同様ですね。

参考
やったこと
  • Monacaのアカウント作成(他のセミナー受講時に取得済み)
  • ニフクラ mobile backendのアカウント作成
  • Monacaでプロジェクトのインポート
  • ニフクラ mobile backendでアプリの新規作成
  • MonacaでmBaaS JS SDKのインポート
  • Monacaでニフクラ mobile backendのAPIキーを設定
総括

アプリを作るというより、サンプルプロジェクトを使ったニフクラ mobile backendの紹介をされている感じでした。
ニフクラ mobile backendを使った、問い合わせアプリは個人的にはとても興味深いものでした。
Android/iOS向けアプリを同時に作成でき、サーバサイドもRuby on Rails等を使用せず作れてしまうというのは凄い時代ですね。
マーケットへの公開は当然、費用がかかるもののサーバサイドを含めたアプリ作成が無料かつ簡単にできるというのは大変有り難い!

ニフクラ mobile backendが使用しているMongoDBの制約により、曖昧検索が出来ないなどの制約はあるようですが無料ですので試してみる価値有りだと思います。

下記はアプリから、問い合わせ内容をクラウドデータベースに保存する処理の抜粋です。
クラウドデータベース側ではテーブルの定義等をせず、下記のコードを実行するだけで自動的にテーブルが作成され、驚きました。
検索や更新、削除も同様に簡単に行えるため、アプリを作りたい欲求がますます高まってきました。

/** ニフクラ mobile backend 連携処理 **/

// APIキー
var applicationKey = 'API_KEY';
var clientKey = 'CLIENT_KEY';

// SDK初期化
var ncmb = new NCMB(applicationKey, clientKey);

mb = {
    /***** demo1:保存 *****/
    saveData: function(data) { 
        // 保存先クラスの作成
        var Inquiry = ncmb.DataStore('Inquiry'); 
        // インスタンスの生成
        var inquiry = new Inquiry();  
        // データの設定と保存
        inquiry.set('name', data[0])
                .set('emailAddress', data[1])
                .set('age', data[2])
                .set('prefecture', data[3])
                .set('title', data[4])
                .set('contents', data[5])
                .save()
                .then(function(results){
                    // 保存成功
                    ons.notification.alert('問い合わせを受け付けました');
                    console.log('保存成功');
                })
                .catch(function(error){
                    //保存失敗
                    ons.notification.alert('問い合わせの受付に失敗したしました');
                    console.log('保存失敗:' + error);
                });
    },
};
その他

ニフクラ mobile backendには下記のような機能もあるようですので、今後も活用できるよう勉強していきたいと思います。

  • 会員管理
  • プッシュ通知
  • 位置情報検索

Ionicで作る モバイルアプリ制作入門の感想

f:id:tsukasa-labz:20180305020622j:plain

Ionicとは

Ionicは、Google社の「Angular」というアプリケーションフレームワークをベースに HTML5アプリの開発に特化して作られたフレームワークです。

Ionicで作る モバイルアプリ制作入門〈Web/iPhone/Android対応〉より引用

なぜIonicを勉強しようと思ったか

正直なところ、Twitterでたまたま見かけたからです。
Twitterで見かけるまではMonacaで選択できるフレームワーク程度の知識しかありませんでした。
元々スマホアプリ開発に興味があり、AndroidアプリをGoogle Playに公開※1していました。
そのため、見かけた時に購入することを決定しました。

読んでみた感想

良かった点
  • iOS/Android別のUIデザイン
     → Onsen UI同様、OS毎に見た目が変わるのはやはり有り難い
  • 公式ドキュメントのURLが必ず書いてある
     → これは地味に有り難く、リファレンスを確認しながら進められる!
  • リファクタリングが実践的
     → 見よう見まねで作成したコードが、再利用性の高いコードになりました!
  • IonicViewで審査無しにアプリを配布
     → 年会費無しにiPhone/Androidで実機確認できるのは素晴らしい!

悪かった点
  • Android Studioのインストール説明などが簡潔
     → 開発初心者を対象としていないためか、かなり省略されております
  • ページ数の割には価格が高い※2
     → ページ数で価値が決まるとは思いませんが、やはり割高感があります
  • 「Webサイトが作れるならアプリが作れる」とあるが、AngularやTypeScriptを覚えないといけない
     → これは私の勉強不足ですね、精進します(汗)

総括

やや割高感はありますが、内容がかなり濃厚なので買う価値有りだと思います。
CHAPTER04ではJSON形式で取得したデータを表示するニュースアプリのようなものを作成しました。
よくあるメモアプリやタスク管理アプリと比べ、より実践的で作っていてとても楽しめました。

Ionicを使うにあたり、AngularやTypeScriptなども勉強しないといけないと痛感しました。
今年中にはRuby on Railsでバックエンドを作成し、Monaca/Ionicでスマホアプリをリリースしたいと思います。

補足

※1 現在は諸事情により公開しておりません
※2 買おうと思っていたプロを目指す人のためのRuby入門と比較

書籍名 判型 ページ数 価格
プロを目指す人のためのRuby入門 B5変形判 472ページ 3,218円
Ionicで作る モバイルアプリ制作入門 A5判 194 ページ 3,910円

Ruby25に参加した感想

f:id:tsukasa-labz:20180304235521p:plain

Ruby25(ルビィトゥエンティファイブ)とは

プログラミング言語Ruby 25周年記念イベント
25年を振り返り、皆さまとお祝いし、Rubyの今、そして未来を展望する

公式サイトより引用

Ruby25に参加した感想

私の感覚では8~10周年ぐらいのイメージでしたので、Ruby25周年ということに非常に驚きました。
新参者というイメージがありますが、実はJavaとあまり変わらないのですね。
イベントではRubyの歴史、未来、名前の由来などについてお話されていました。
サプライズで実の娘が2人登壇し、親バカエピソードを暴露されるなど、意外な一面も。

まつもとさんは当時、会社員で1人だけ私服通勤の上、仕事中にRubyの開発をされていたそうです(笑)
このエピソードが1番印象に残っており、マネしようかなと一瞬考えましたが
今の時代だとPCやインターネット履歴の監視、作業工番による時間管理などが厳しくなっているのでマネするのは難しそうです。
私は言語を作りたいというより、アプリやウェブサービスを作りたいという思いが強いので、Rubyを活用させて頂く方向で貢献したいと思います。

最近は仕事でRubyに触れることも無く、Railsチュートリアルも放置気味になっていましたが、再開するいいきっかけになったかと思います。
イベントの資料や動画が公開され、わざわざ行かなくても良いという考えもあるかとは思いますが、実際に行ってみると良い刺激になりました。
今後もこのようなイベントや勉強会等には積極的に参加し、エンジニアとして成長できればと思います。
ブログではツールやサービスの紹介、技術書の感想がメインになってしまっているので、技術ネタを書けるように勉強せねば。

日時

2018年2月24(土)
13:00-18:00

場所

東京都港区港南2-15-4 品川インターシティホール

チケット

  • 一般(2,000円)
  • 学生(無料)
  • Ruby 貢献者(無料)

スケジュール

12:00

開場

13:00 - 13:20

オープニング

13:20 - 13:50

特別講演
Rubyの1/4世紀
高橋 征義
一般社団法人日本Rubyの会 代表理事
日本Rubyの会代表理事兼株式会社達人出版会代表取締役プログラマ。
著書に『たのしいRuby』『Rails3レシピブック』(共著)等。好きな作家は新井素子。
www.youtube.com

13:50 - 14:40

基調講演
Ruby after 25 years
まつもと ゆきひろ
一般社団法人 Ruby Association 理事長、その他
Rubyのパパ。
www.youtube.com

14:40 - 15:10

休憩

15:10 - 15:25

Rubyの今
Ruby on Ruby on Rails
松田 明
Asakusa.rb
Rubyコミッター。Ruby on Railsコミッター。kaminari、action_args、active_decoratorなどのライブラリの作者。RubyKaigiのチーフ・オーガナイザー。Asakusa.rbの発起人。
www.youtube.com

15:25 - 15:40

Rubyの今
RubyとInfrastructure as Code、そして大規模インフラ
近藤 宇智朗
GMOペパボ株式会社 技術基盤チーム シニア・プリンシパルエンジニア
ECサイト、オンライン ゲーム開発などを経て、2013年よりGMOペパボ技術基盤チーム。
同年より福岡市内に移住。
共著に『パーフェクトRuby』『パーフェクトRails』などがある。 mrubyを組み込んだLinuxコンテナランタイム「Haconiwa」の作者で、Haconiwa関連の活動としてRubyKaigi 2016でのトークが採択され、また第9回福岡Ruby大賞を受賞。
現在は、Haconiwaをベースとしたクラウドサービスである「ロリポップ!マネージドクラウド」にアーキテクトとして参加している。
www.youtube.com

15:40 - 15:55

Rubyの今
mruby、今IoT、組込界隈でこう使われています、最新事例紹介!
石井 宏昌
NPO軽量Rubyフォーラム
Rubyからmruby作るように経産省に提案書いて以来、mrubyと一緒にいます。皆さんにmrubyをもっと知ってもらえますように。
www.youtube.com

15:55 - 16:10

Rubyの今
Data Processing and Ruby in the World
田籠 聡
トレジャーデータ株式会社
データ転送、分散処理、ストリーム処理等のOSSの開発・メンテナンスなどを行うプログラマ。
Fluentd, MessagePack-Ruby, Norikraなどのコミッタ/メンテナ/開発者。
トレジャーデータでは分散データ処理基盤の設計・開発などを行う。
www.youtube.com

16:10 - 16:40

休憩

16:40 - 17:50

Rubyの未来
Matz & Miyagawa 未来を語る特別対談
宮川 達彦
Principal Software Architect at Fastly
Perl Hacker. Podcaster at rebuild.fm. Principal Software Architect at Fastly. Born in Tokyo, Lives in San Francisco.
www.youtube.com

17:50 - 18:00

クロージング

わかばちゃんと学ぶ Git使い方入門の感想

gitとは

Git(ギット)は、プログラムのソースコードなどの変更履歴を記録・追跡するための分散型バージョン管理システムである。 Linuxカーネルのソースコード管理に用いるためにリーナス・トーバルズによって開発され、それ以降ほかの多くのプロジェクトで採用されている。 Linuxカーネルのような巨大プロジェクトにも対応できるように、動作速度に重点が置かれている。現在のメンテナンスは濱野純 (Junio C Hamano) が担当している。 Gitでは、各ユーザのワーキングディレクトリに、全履歴を含んだリポジトリの完全な複製が作られる。 したがって、ネットワークにアクセスできないなどの理由で中心リポジトリにアクセスできない環境でも、履歴の調査や変更の記録といったほとんどの作業を行うことができる。 これが「分散型」と呼ばれる理由である。

Wikipediaより引用

なぜgitを勉強しようと思ったか

SIerではソース管理にTFSVSSSVNを使用することがほとんどでした。
そんな中、とある客先ではgitを使用してソース管理を行っており、これを機に使い始めました。
何となく誰かが設定した環境でコミット、プッシュ、プルを行っている状態でイマイチ仕組み等は理解出来ていませんでした。
いつかちゃんと勉強しようと思っていたものの、結局何もしないまま今に至りました。
WEB系を目指す上で改めてきちんと勉強しようと思い、わかばちゃんと学ぶ Git使い方入門を購入しました。
f:id:tsukasa-labz:20180217154216j:plain

読んでみた感想

良かった点
  • 漫画になっているだけあってとてもイメージしやすい
  • プルリクの練習ができる
悪かった点
  • どのリポジトリで作業をしているのかわかりにくい
  • 画像内の文字が一部小さくて読めなかった

23.8インチディスプレイで100%表示

良いことばかり書くとステマ記事っぽくなるので、あえて悪い点もあげています。
どのリポジトリを使用しているかは画像をよく見ればわかりますし、画像内の文字が小さいのもKindle版では拡大ができます。
どちらも勉強をしていく上で致命的なものでは無く、改善したほうがより良くなるというものです。

総括

恥ずかしながら業務で使用していた際はスカッシュやスタッシュと言った機能を全く知りませんでした(汗)
「git pull」は「git fetch」+「git merge」であるということも、本を読むまで考えたことすらありませんでした。
入門とは言え何となくで使っていた頃と比べ、理解が深まったと言えそうです。

gitの機能面以外で特に驚いたのは、プルリクの練習ができるということです。
ここまでできるというのは本の値段に対して、過剰とも言えるサービスではないでしょうか?
プルリクを送った後、数時間後にはマージされました。
f:id:tsukasa-labz:20180219024413j:plain そのうち贅沢に慣れ、「マージされるのが遅い」などとクレームをつける人が出てきて、サービスが無くならないことを祈るばかりです。