株式会社シベスピ 従業員ブログ

シベスピの社員ブログ。技術・想い・経験沢山書いていきます!

【C#】Visual Studio 2019 インストール【Windowsフォームアプリケーション】

インストーラのダウンロード

MicrosoftVisual Studio 2019のダウンロードページに飛びます。
ダウンロード | IDE、Code、Team Foundation Server | Visual Studio

Visual Studio 2019」の「Community」の「無料ダウンロード」をクリックすると、インストーラのダウンロードが始まります。
f:id:chivsp:20191026195710p:plain

ダウンロード終了後、インストーラを実行します。
f:id:chivsp:20191026195800p:plain

インストール

ライセンス条項等は適当に読み飛ばして「続行」をクリックします。
f:id:chivsp:20191026195929p:plain

インストーラの準備が完了するとインストール対象の選択ができるので、必要な対象を選んで「インストール」をクリックします。
f:id:chivsp:20191026200125p:plain

インストールが開始されるので、完了するまで待機します。
f:id:chivsp:20191026201117p:plain

サインイン

インストールが完了するとサインインを求められるので、「サインイン」をクリックします。
f:id:chivsp:20191026201406p:plain

アカウントを持ってない場合、「作成してください」をクリックしてアカウントを作成してください。その際の手順は下記ページを参考にしてください。
【C#】Visual Studio 2017 インストール【Windowsフォームアプリケーション】 - 株式会社シベスピ 従業員ブログ

今回はVisual Studio 2017をインストールした際にサインインしてあったため、特に何もせずサインインが行われました。
f:id:chivsp:20191026202548p:plain

下の画面が表示されたらインストール完了です。「コードなしで続行」をクリックして、ライセンスの登録を行います。
f:id:chivsp:20191026202621p:plain

ライセンスの登録

「コードなしで続行」をクリックするとIDEが開くので、右上のアイコンから「アカウントの設定」をクリックします。
f:id:chivsp:20191026203118p:plain

「更新されたライセンスの有無を確認」をクリックします。
f:id:chivsp:20191026210207p:plain

下記の画面になるので、これでインストールはすべて完了です。
f:id:chivsp:20191026210535p:plain

後書き

とっくの昔にリリースされていた2019ですが、書かなきゃいけない気がしたので書いてみました。正直C# 8.0どころか7.0~7.3の機能も使いこなしてないので、インストールする必要はあったのか🤔🤔🤔という感じもします。


記事内容とこれっぽっちも関係はありませんが、今年の夏に富士山に行ってご来光アメイジングしてきました。
f:id:chivsp:20191026193516j:plain

幸いにも高山病の症状もなく初心者向けルートだったこともありサクサク登れました。予想以上に早く山小屋についたので外のベンチに座りながら、登ってくる人達の苦悶の表情を眺めてました。楽しかったです。
ちゃんと募金もしてきました。
f:id:chivsp:20191026194303j:plain

最終的には剣岳や奥穂のジャンダルムとか行きたいです。
富士山以降今日に至るまで雨と予定のブッキング一回しか山に登れず、つらみなIskがお送りしました。

【objective-c】iOSアプリ開発超初心者講座【アプリ作成編】

以前書いたXcodeのインストール編から1年以上経ってました。
今回はインストールしたXcodeで簡単な雪を降らせるアニメーションアプリを作って行こうかと思います。
プログラミング未経験の方に向けて、難しい説明などは割愛して、アプリ作成する流れを書いて行きます。

用意するもの

mac
Xcode

1.プロジェクト作成


まず、Xcodeを立ち上げて、「Create a New Xcode Project」をクリック。


アプリで使うテンプレートを選びます。
今回は、簡単なアプリを作るので、真っ白な画面だけが用意される「Single View app」を選択し「Next」をクリック。


プロジェクトの名前などを入力します。
ProductName:アプリの名前
OrganizationName:アプリを作る人の名前
OrganizationIdentifier:アプリを作る人のID(※適当で大丈夫ですが、アプリをリリースして売ったりする際は、他の人と被らないようにしないといけないです。)
Language:objective-cを選択
入力できたら、「Next」をクリック。


プロジェクトの保存先を選び、「create」をクリック。


すると、プロジェクトが作成されます。

2.Main.storyboard


次に、左側の一覧にある「Main.storyboard」を選択します。
すると、中央に白い枠が出てきます。これはアプリを起動した際に開かれる画面で、どういうものを配置するのかを決めていきます。
今回は雪を降らせるので、白い背景では雪が映らないため背景を作っていきます。


白い枠をクリックし、赤枠で囲ったところを選択すると、画面の背景色を指定できるので、それっぽい色に変更します。


画面的に寂しいので、下に人を配置します。


「Image View」を選択し、中央の枠にドラッグ&ドロップします。


人の画像ファイルを直接ドラッグ&ドロップします。
すると、ポップアップが出てくるので「Finish」をクリック。
(一緒に雪の画像も追加しておきます。)


無事画像が取り込まれました。


Main.storyboardに戻り、先ほど設置した「Image View」の枠をクリックし、右上の「Image」に追加した画像が表示されているので選択します。


これで、Main.storyboardでの作業は終了です。

3.ViewController

ViewControllerは表示される画面に色々な制御を加えるものです。
今回でいうと、雪の降るスピードや数などを制御しています。
ViewController.mに以下のコードを書いてみてください。

@interface ViewController ()
{
int snowCount;
double snowSpeed;
NSMutableArray *snowArray;
NSTimer *timer;
}
@end

@implementation ViewController

  • (void)viewDidLoad {

[super viewDidLoad];

snowCount = 0;
snowSpeed = 0.8;
snowArray = [NSMutableArray new];

timer = [NSTimer scheduledTimerWithTimeInterval:0.01
target:self
selector:@selector(snowFall)
userInfo:nil
repeats:YES];
}

  • (void)snowFall

{
if (snowCount >= 20) {
[self fall];
snowCount = 0;
}
snowCount++;

for (int i=0; i<[snowArray count]; i++) {
UIImageView *imageView = snowArray[i];
int randx = arc4random()%2;
imageView.center = CGPointMake(imageView.center.x+randx,
imageView.center.y+snowSpeed);

if (imageView.center.y > self.view.frame.size.height) {
[imageView removeFromSuperview];
[snowArray removeObject:imageView];
}
}
}

  • (void)fall

{
UIImageView *snowimageView = [UIImageView new];
snowimageView.image = [UIImage imageNamed:@"snow.png"
int randH = arc4random()%10;
int randT = arc4random()%10;
if (randH <=5) {randH = 10;}
if (randT <=5) {randT = 10;}
snowimageView.frame = CGRectMake(0, 0, randH, randT);
int rand = arc4random()%320;
snowimageView.center = CGPointMake(rand, -5)
[self.view addSubview:snowimageView];
[snowArray addObject:snowimageView];

}

  • (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end

赤で「雪の降るスピード」
水色で「雪の降る間隔」
青で「雪の画像」
緑で「雪のx座標、y座標、幅、高さ」
などを指定しています。

4.実行


左上の実行ボタンをクリックして、アプリを起動させてみましょう。
右側を選択すると、どの端末で起動するか選べます。iPhoneiPadを持っていたらUSBで繋げば実機に作成したアプリをインストールすることができます。

完成!


無事雪を降らせることができました!
「3.ViewController」で色付けした箇所をいじって暴風雪にしたり、石を降らせたりしてみて遊んでみてください!

次回また機会があれば、Xcodeの機能やobjective-cの文法などを書ければと思います。

好きな事に対する意欲

最近の出来事で、すごいと感じたことをブログに書こうと思います。

お出かけ編

ハワイから来たお友達に、何回か行ったことある鎌倉なら案内できると思い、鎌倉に行きました。
鎌倉のどこに行こうか相談したところ「長谷寺に行きたい」と言われましたが、私は長谷寺を知りませんでした。
調べてみると意外と有名だった(笑)
なぜ、鎌倉に何度か行ったことのある私が知らない寺をハワイの人が詳しいのだろう??
聞いてみたところ、鎌倉にはもう数十回も来てるそう。。。逆に案内されてしまった(笑)

転職編

ハワイから来たお友達が、転職して日本で仕事をやるとの事で、どんな仕事するのかと聞いてみたところメディア系で、初の仕事は中東での撮影に3週間くらい行くそうです。
日本で仕事したいんじゃなかったのか??
日本で働いていて、今回は出張するだけだから良いとの事。。。なるほど出張(笑)

共通点

「お出かけ編」と「転職編」を踏まえ、なぜハワイのお友達が鎌倉に詳しく日本で働きたいのか?
それは「日本が好きだから」です!
ただ日本が好きだから日本語を勉強し、お金を貯めて日本旅行をして、転職までしたのです。
「好きな日本のためになら何でもできるよ」と言われた時、確かに好きな事に関して調べたり努力するのは苦ではないと思いました。
何かやるべき事があるとき、好きなものに紐づける事さえできれば、出来ないことはないと思います。
私は病院で、軽くでも良いので運動をやりましょうと言われたので、好きなゲームで散歩を始めました(笑)
みなさんもお試しあれ(笑)

ボホール島観光レポート

少し間があいてしまいましたが、社員旅行のオプショナルツアーでボホール島へ行ってまいりましたので、簡単なレポートを作成しました!

★☆セブ島の市内観光をしたチームのレポートはこちら!☆★
chivsp.hatenablog.com

ボホール島観光

セブ島からは高速フェリーで約2時間、ボホール島はフィリピン国内で10番目に大きい島です。
goo.gl

今回のボホール島観光は、タグビララン港到着後、日本語が堪能なガイドさんと一緒に車で次の観光スポットを巡りました。

血盟記念碑

クライオン教会

ターシャの森

ロボック川 ランチクルーズ

チョコレート・ヒル

各スポットの概要

今回巡った各スポットの概要です。

血盟記念碑

スペイン占領時代、争いの終結と友好をお互いの誓い合ったことを記念する碑。
ボホール島の南側の海を臨む高台に位置しています。

血盟記念碑
スペインの初代総督レガスピとその家臣、ボホール島の酋長だったシカツナを模しており、当時の勇壮な姿がうかがえます。
【血盟】とは、お互いの腕を傷つけ、流れ出た血をワインに注ぎ、飲み干すことで約束を確固不抜のものとするフィリピンの伝統的な慣習だそうです。

クライオン教会

国民の9割がキリスト教徒であるフィリピンは、町ごとに教会が存在します。
クライオン教会はその中でも最古の教会の1つと呼ばれているそうです。
2013年のボホール地震により鐘楼や教会堂に大きなダメージを受けたそうですが、2018年修復が完了し、教会堂や鐘楼の見学をすることができました。

クライオン教会(外観)
クライオン教会(教会堂内)

ターシャの森

ターシャは、ボホール島のみに生息するフィリピンメガネザルです。

ターシャ
小さくてかわいらしいターシャですが、非常に繊細でストレスを感じると自殺してしまいます。
そのため、島外での飼育は難しく、ボホール島に来なければ会うことができません。

ロボック川 ランチクルーズ

ロボック川をクルーズしながら、フィリピン料理のビュッフェランチをいただきました。
キューカンバーモヒートがおいしかったです!

ロボック川 クルーズ
エメラルドグリーンの水面が美しく、ゆったりとした川の流れがとても気持ちの良い時間でした。

チョコレート・ヒル

チョコレート・ヒルズは円錐形の丘が点在する不思議な地形です。
200段を超える階段を登り、壮観な景色を眺めてきました。

チョコレート・ヒル
まだほんのり緑色ですが、乾季には丘の草木が枯れて、チョコレート色になるのがチョコレート・ヒルズの由来だそうです。

感想

出発前、乗り物が苦手な私は2時間の船旅に内心不安でいっぱいでした。
でも思い切って行って良かった!と思える時間となり、非常に満足しています。
ちょっと駆け足でしたが、ボホール島の自然と伝統を感じたツアーでした。

フォロワーシップ実践のすすめ

当社の新年度に際し、当ブログにて社員の皆さんに対して、
佐藤さんからは「エンジニアに学んで欲しい」こと
松下さんからは「目標設定」について
と、指針・学習・検討補助となる内容が展開されましたので、私もその流れに続き、「フォロワーシップ」について紹介したいと思います。
フォロワーシップ」については様々な書籍も発行されているので、ここでは基本概念の紹介と私の拙い実践体験を書きます。

1.フォロワーシップとは

フォロワーシップとは、『企業組織・開発プロジェクト等(以下まとめて「チーム」と記述)においてリーダーを補佐するフォロワー(部下やメンバーなど)が、リーダーに対して自律的支援を行うこと。』
と定義されます。

具体的には、フォロワーはリーダーの指示に従い業務を遂行するだけでなく、リーダーの行為に誤りがあれば意見するなど自分で考えて主体的な働きかけにより支援します。

またその目的は、チームの目標を達成するためであり、リーダーシップだけに頼ることなくフォロワーシップも発揮して、チーム全体のパフォーマンスを最大限に発揮することにあります。

2.分類基準の二軸「貢献力」と「批判力」

一般的にフォロワーを5つのタイプに分類しますが、分類の基準として「貢献力」と「批判力」という二軸からなるマトリクスを使用しています。

「貢献力」とは、自らの実力を発揮してリーダーを支援し、組織の目的達成に貢献する力のことです。評価の基準は「積極的に関与しているか」がポイントになります。

それに対して「批判力」とは、指示を受けるだけではなく自らの意見を述べたり、必要であればリーダーの方針を正すことのできる力です。評価の基準は「主体的に行動しているか」になります。

3.すぐに可能な実践例

私が20代の後半に「フォロワーシップ」を学び簡素に脳内変換し実業務に合わせて実践した例を紹介します。

まず、「批判力」を「計画検討」に置き換えました。
リーダーからの指示を10(例として数値化)受けたとして、
・10をすべて理解したか?
・10を達成するためのタスクイメージが出来ているか?
・10は本当に10で足りているのか(目的=成果物として正しいか)?
などの「計画検討」を行い、必要に応じてリーダーに対して質問、意見、確認、再確認を行いました。

そして「貢献力」を「付加価値」に置き換えました。
成果物10を生み出すことは当然として、
・次の成果物につながる11にすること
・リーダーの成果効率化に値する11にすること
・チームの成果効率化に値する11にすること
などで、リーダー・チームからすれば「かゆいところに手が届く」「気が利く人」と思われるくらいのちょっとした付加価値をつけて成果報告することを実施しました。
※納期内で終わらせることが大前提です。

4.最後に

フォロワーシップ」を意識して実践したことでの感想は、積極的に関わり、主体的に行動したことで明らかにそれまでよりも「仕事が楽しく」なりました。
自身の感情の向上だけでなく、リーダー・チームからの評価にも繋がり、物心ともにそれなりに満足の20代後半~30代前半を送ることもできました。

間もなく新年度の経営方針の説明会が実施されます。
またそれを基に各組織・各員・各プロジェクトの目標設定の詰めも行われることと思います。
その実践に際して「フォロワーシップ」を意識して組み込めば更に成果が伴うと思い紹介しました。
期中に実践結果の嬉しい報告が聞けることを楽しみにしています。

以上です。

目標設定

当社の決算は9月末で10月から新年度です。
新年度には社員全員に目標設定をしてもらっていて、丁度よい時期なので今回は目標設定について書きたいと思います。
まず目標を立てることのメリットを当社でも最近はやりのダイエットを例にして書きます。

①目的を達成する可能性が高まる。

目標を立てるにあたり、その背景となる目的があるはずです。
ダイエットの場合、1年で10Kg痩せるが目標で、目的は痩せることにより、彼女or彼氏を作るだったりします。
目標を達成することにより、目的が達成される確率が上がります。
なので目標を立てる際には目的は何なのか、また目的に沿った目標になっているのかもしっかり考える必要があります。

②選択を迫られた時の判断基準になる。

目標を立ててない場合、暴飲暴食などに歯止めをかけるたり、運動をするきっかけがありません。
目標を立てた場合は日々起こる事象に対し、目標と照らし合わせて目標に沿った判断できます。(今は食べてはいけないとか、一駅歩こうとか)

③現状把握する事ができる。

1年で10Kg痩せるが目標であるならば、半年たった時点で5Kg痩せていないなら、今のペースでは達成することができないと認識できます。
なので目標を立てるときは目標設定は具体性が必要です。
次に目標を立てる時に注意すべき点を順に書きます。

①目的に沿った目標になっているか?
②目標は具体性があるか?
③目標達成の手段を考えているか?
④目標達成の手段は実現のある手段になっているか?

記載の内容を考慮して目標を設定し、実りある一年にしてください。

エンジニアに学んで欲しい思考方法

ご無沙汰しております。佐藤です。

前回ブログを書いてから、随分経っているなと思い、何を書いたのかすら怪しいので見返してみると、ここ何回かは熱帯魚のことばかり書いてました。

前回から半年、色々あり、シュリンプはいつの間にか全部いなくなりましたが、そのお話はまた別の機会に。

前回のブログの最後で、次回は真面目な話をしますと宣言していたようなので、今回は、私が夕会でよく話しをしている「考える」ことについて書きたいと思います。

エンジニアに必須なロジカルシンキング

それでは早速、

システム開発を行う上で、ロジカルシンキングを学ぶ人は多いのではないでしょうか?

プロジェクトに携わる際に、自分の思考を論理的に説明出来る能力は必須となります。

自分のやりたいこと、相手にやって欲しいことをきちんと説明が出来なければ、みんなで作業は行えないからです。
1人だけ意図から外れたものを作ってしまっては、システムはいびつになってしまいます。

そのため、ロジカルシンキングはプロジェクトに参加する上で必要な能力と私は考えております。

一つ上のエンジニアを目指すために学ぶもの

次に学ぶものとして、クリティカルシンキングを薦めています。
クリティカルシンキングは、日本語に訳されると批判的思考となります。

これは、物事に対し、本当に正しいのか?と、批判を繰り返す思考のことです。

ロジカルシンキングで立てた仮説に対し、クリティカルシンキングで本当に正しいのかを考える。
考えに深みを与えるものです。
それによって、よりbetterな結果を導き出すことになります。

システム開発はあくまでも手段であり、目的に対し期待する結果を得るためにシステム化を行います。
目的に到達するための手段は一つではなく、いくつも存在します。

本当にその提案や設計で良いのか、他に良いものはないか、

これだと目的に対して問題はないか?を何度も検討することで、結論に対して自信も持てます。

それがお客様へ自信を持って提案出来るものに変わっていくのです!

これまで、プロジェクトにおける打合せを幾度と無く行ってきましたが、自分の意見に自信を持って、お客様に説明できる人は多くありません。

結論やジャッジを、上司やお客様に委ねる人は多く、複数の選択肢を引き出すところまでで終わっている人が多いです。

あなたはどちらの案が良いと思いますか?って尋ねると、こちらはこういうメリットが、こちらはこういうデメリットが、、、

そのような回答で止まってしまう人が本当に多いです。

こちらにはこういうデメリットがありますが、将来を考えると・・・とか、お客様の○○を考えると・・・など、その選択についてもジャッジする指標を追加することができます。

プロジェクトマネージャー、プロジェクトリーダーを目指すのであれば、ロジカルシンキングの次に、クリティカルシンキングを学んでみては如何でしょうか?