Xamarinに手を出し始めたのは良いのですが、その開発環境がどうにも手になじまず試行錯誤しています。今回の記事で解決できるかというと微妙ではありますが、やれるだけのことはやってみようと思います。
というわけで、動作が快適になったといわれるVisual Studio 2017がでたのでそちらを中心に開発環境を暫定で整理します、永遠のWIPです。
まず、想定している開発フローは下記の通り。
feature
ブランチをきってプルリクエストをたてるmaster
マージ後にいらなくなったfeature
ブランチを消すなどの後片付け役。ちなみにWerckerでのfeature
ブランチなどの後片付けはこんな感じです。master
マージのタイミングで走らせます。
box: ruby:2.4.0
build:
steps:
- add-ssh-key:
host: github.com
keyname: GITHUB
- add-to-known_hosts:
hostname: github.com
fingerprint: 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48
- script:
name: Add git-tag
code: |
_tag=$(date -u -d '9 hours' +%Y-%m-%d-%H-%M-%S)
git remote add origin git@github.com:nabinno/utagaki.git
git config --global user.email 'wercker@blahfe.com'
git config --global user.name 'Wercker Bot'
git tag -a $_tag master -m 'wercker deploy'
git push origin $_tag
after-steps:
- wantedly/pretty-slack-notify:
webhook_url: ${SLACK_WEBHOOK_URL}
channel: general
その上で開発環境は下記の通りに設定します。Visual Studio 2017版Xamarinは現時点でHypervisorがHyper-Vを考慮していない、Intel HAXMやVirtualBoxなどのホスト型を前提としています。ただ私見としては、VirtualBoxなどのホスト型はWindowsアップデート時に動作検証対象となっておらずクラッシュが起きやすいです。Hyper-Vを開発環境とすることをお薦めします。いずれにせよ、デバッグはビルドスピード等がHypervisorに左右されるAndroidではなくUWPで行うと良いでしょう。
おまけのEmacs風キーバインド。Edit.Emacsメソッドは1級市民ではないのでその周辺で代替します。Edit.LineCut、Edit.Outline、ReSharpeのいらないキーバインドは削除しています。
category | command | keybind |
---|---|---|
Navigation | CodeMaid.SwitchFile | C-c,: |
Navigation | Edit.CharLeft | C-b |
Navigation | Edit.CharRight | C-f |
Navigation | Edit.DocumentBottom | M-> |
Navigation | Edit.DocumentTop | M-< |
Navigation | Edit.GoTo | M-g |
Navigation | Edit.IncrementalSearch | C-s |
Navigation | Edit.LineDown | C-n |
Navigation | Edit.LineEnd | C-e |
Navigation | Edit.LineStart | C-a |
Navigation | Edit.LineUp | C-p |
Navigation | Edit.NextMethod | M-} |
Navigation | Edit.PageDown | C-v |
Navigation | Edit.PageUp | M-v |
Navigation | Edit.PreviousMethod | M-{ |
Navigation | Edit.ScrollLineCenter | C-l |
Navigation | Edit.ToggleAllOutling | C-u,M-c |
Navigation | Edit.ToggleOutlingExpansion | C-i |
Navigation | Edit.WordNext | M-f |
Navigation | Edit.WordPrevious | M-b |
Navigation | ReSharper.ReSharper_GotoRecentFiles | M-x,b |
Navigation | Team.TeamExplorerSearch | C-x,g |
Navigation | View.C#Interactive | C-c,i |
Navigation | Window.NewVerticalTabGroup | C-x,| |
Navigation | Window.PreviousTabGroup | C-x,1 |
Edit | Build.BuildSolution | C-c,b |
Edit | Build.RebuildSolution | C-c,r |
Edit | CodeMaid.JoinLine | C-c,j |
Edit | CodeMaid.SortLines | M-x,s |
Edit | Debug.Start | C-c,d |
Edit | Edit.BackwardDelete | C-h |
Edit | Edit.BackwardDelete | M-h |
Edit | Edit.BreakLine | C-m |
Edit | Edit.Capitalize | M-c |
Edit | Edit.CommentSelection | M-; |
Edit | Edit.Delete | C-d |
Edit | Edit.InsertSnippet | C-, |
Edit | Edit.LineCut | C-k |
Edit | Edit.LineDownExtendColumn | M-. |
Edit | Edit.LineUpExtendColumn | M-, |
Edit | Edit.MakeLowercase | M-l |
Edit | Edit.MakeUppercase | M-u |
Edit | Edit.Paste | C-y |
Edit | Edit.SelectCurrentWord | C-SPC |
Edit | Edit.UncommentSelection | M-: |
Edit | Edit.Undo | M-/ |
Edit | File.Close | C-x,k |
Edit | File.SaveSelection | C-x,C-s |
Edit | Project.AddNewItem | C-c,s |
Edit | ReSharpe._ReSharper_DuplicateText | C-c,p |
Edit | ReSharper.ReSharper_GotoRelatedFile | C-c,; |
Edit | ReSharper.ReSharper_GotoText | C-c,g |
Edit | Tools.ManageNuGetPackagesforSolution | C-c,n |
Edit | Tools.Options | M-0 |
Edit | View.PackageManagerConsole | C-q,1 |
途中途中心の声が漏れていますが、なんとか触れる状態になってきました。ただ、モチベーションとしては下がり気味なのでこのままXamarinをさわり続けるかは分かりません。やはり文化が違いますね。
テクノロジーの進化は、絶え間ない変化の中で私たちの日常を塗り替えてきました。時には経済的な危機が、新たな可能性を切り拓く契機となることもあります。そこで、過去のリセッション期に生まれたテクノロジーの足
ATKerneyの課題解決パターン は、課題の本質を見極め、効果的な戦略的構造化を通じて解決策を導き出す手法にフォーカスしています。この冒険の旅は、解決者と協力者たちが心を一つにし、課題に立ち向かう様
私はいわゆる就職氷河期世代です。周囲から時折漏れ聞こえる不平のような言葉がありますが、それを単なる不平として片付けるのはもったいない気がします。できれば、その中に新しい視点を見つけ、次のチャンスへ繋げ