(dev)juginon-blog

勉強したこと、趣味のこと。

iOSDC Japan 2022で初登壇しました

初めての登壇(スタッフ撮影)

こんにちは、Ogijunことjuginonことおぎじゅんです。去年はリスナーとして参加していたiOSDC Japan、今年はスピーカーとして参加したので報告を書きます。

去年の参加記事のラストで

今回は参加者ということで、チャレンジに入賞したことで名前も一応載せていただくことはできましたが、やっぱり自分も何かしら発表してみたい!

来年からはiOSエンジニアとして社会人になるわけですが、こういった場で盛り上がるような話題を提供できるような、そんなエンジニアになりたいと思いました。

こんなことを書いていたのですが、まさか1年でこの発言が実現できるとは思っていなかったので正直びっくりしています。

去年はまだ学生ということもあり本当にただスピーカーのお話を聞くだけのイベントだったiOSDCですが、今年はスポンサーブースの出展・オフライン参加という去年とはまったく違う体験ができました。

そこらへんの所感も書いていきます。

発表したもの

今回自分が発表したものは、「全力疾走中でも使えるストップウォッチアプリを作る」というものでした。

fortee.jp

このブログでも紹介したストップウォッチアプリがリジェクトされた話

ogijunchang.hatenablog.com

を発展させて、「じゃあどんなインタラクションだったらリジェクトされなくて使いやすいストップウォッチが作れるんだろう?」という疑問を、実際に走りながら使うことで検証した(やってみた系の)発表になります。

実はこういった現地の会場で視聴者を前にマイクを使って発表するという形式の登壇はしたことがなく(研究の学会等はコロナウイルスの影響ですべてオンラインになっていた)、今回が人生初のリアル登壇になりました。

会場の5つの発表部屋のうち大きい方のTrackAで発表することになり、いやこんな発表でそんな大人数来るわけないやん…と思っていたのですが、まあ案の定そんなに現地の視聴者もおらず(小さい方の会場で十分収まるくらいの人数)、そのおかげで発表はほとんど緊張せずに終わりました。

とはいえ、発表したあとに「作ったアプリ、ダウンロードしてみました」と直接言われたりとか、DiscordやTwitter、生放送のコメントでフィードバックを書いてもらっていたりしてとても嬉しかったです。

もともと大学の陸上部のために作ったアプリがここまでいろんな(しかもiOS界隈では名の知れた)方々に知ってもらえるようになるとは思っていなかったので、採択されてよかったなぁと思いました(採択されなかったら追加開発をするモチベーションもそこまでなかった)。

せっかくここまで作ったので、今後はストップウォッチとしての機能をより拡充するようなアップデートができたらいいなと思います。

いずれ発表の動画がYoutubeに上がると思いますが、スライドもSpeaker Deckに上げました(初のSpeaker Deck)。僕の発表は検証動画が売りなので、それが見えないと正直なにやってるのかわからないと思いますが。。笑

speakerdeck.com

スポンサーブースもやりました

マネキンよりスタイルいいじゃん、と言われた(スタッフ撮影)

今年はZOZOに新卒入社したということで、ZOZOのスポンサーブースの運営にも携わりました。

現地会場に集合してみんなでブースを準備してシフトを組んで来場者とコミュニケーションを取るというこの形式、めちゃくちゃ大学の文化祭を思い出しました。

大学院の2年間は文化祭で屋台を出すことはできなくなってしまっていたので、こういった形で文化祭っぽい雰囲気を味わえるのはとてもよかったです。

Twitterのフォロワーが増えたり、そもそも初めてリアルで顔を合わせる会社の人がいたり、いろんな人とコミュニケーションできてやはりオフラインもオフラインでいいところたくさんあるな…と思いました。


ZOZOでは現地でのブース出展もありましたが、今年はまだ現地での参加を見送る参加者も多いことを考慮して非公式のオンラインブースも出展しました。

「オンラインでも現地で参加している人たちと同様の体験をしてもらえるようにしよう」という目標のもと、コンテンツをみんなで色々考えて作っていくのはとても楽しかったです。

中のコンテンツ以外の全体のレイアウトやデザインは自分が考えて作りました。

Miroは基本的な図形しか配置することができませんが、いろんな形を組み合わせることで意外と複雑な図形も作り出すことができたので、今回はZOZOの西千葉本社のそばにあるZOZOの広場の公園案内図のようなデザインにしてみました。

コンテンツを辿っていくときに矢印などのあからさまな指示を参加者にさせないようなレイアウトで、かつ誰が見てもわかりやすいデザインってどうやったら作れるんだろう、と考えていたときに出てきた公園案内図のデザインでしたが、正直このアイデアは自分でも神がかっていたと思います。

やっぱりこういうUIデザインを考えるのは他の人よりも得意みたいです。この強みをどうにかして活かせるといいんだけどなーと少しだけ思いました。

このオンラインブースも社内外問わず好評で、他の企業のブースに行ったときにオンラインブースすごいですね!と言っていただけてとても嬉しかったです。

総括

iOSDCのための準備が始まったのはCfPを提出する6月ごろだったのですが、6月はWWDC22があったということもあり入社して配属されてから9月までイベント関連の仕事が通常の開発と並行してずっと続いていました。

それがようやく終わりを迎え、無事に発表できたこと・ブース出展に積極的に参加できたことに圧倒的達成感を感じます。

スライドや原稿の準備にかなりたくさんの時間を使ってしまったことは反省点ではありますが、社会人1年目でここまで濃厚な半年が過ごせるとは思っていなかったです。

セッションを聞いてiOS開発のモチベーションも爆上がりしているので、日々の仕事という名の来年のiOSDCのネタ探し、がんばるぞい!

アメリカに行ってわかったこと

お久しぶりです、社会人のじゅぎのんです。決して仕事が忙しくなったからブログを書いていなかったわけではありません。

実は先日、Appleデベロッパー向けのカンファレンスであるWWDC22に現地参加枠として当選したため、アメリカのカリフォルニアに海外出張してきました。

WWDCの現地での詳しいレポートに関してはこちらの記事にまとまっているので、ぜひご覧ください。僕も一部執筆に携わりました。

techblog.zozo.com

さて、じゃあこの記事では何を書くのかというと、このアメリカ出張が僕にとっての人生初めての海外渡航となったため、初めての目線で見てきた海外に対する感想とか、そんなところをまとめておこうかなと思っています。

すべてが新鮮だったアメリカ出張、その記憶を新鮮なうちにアウトプットしておこう!ではいきます。

アメリカ行きまでの経緯

まず、どういう経緯を辿ってWWDCに現地参加することになったかですね。

先述の通り、Appleは毎年夏に入るこの時期にWWDCという情報技術会議を開催しています。スティーブ・ジョブズiPhone 3GSiPhone 4を発表したのも、このWWDCです。

WWDCは毎年カリフォルニア州で現地開催されていましたが、2020年と2021年は新型コロナウイルスの影響でオンラインのみの開催となっていました。

そして今年、おそらく以前よりは定員を減らした状態で現地(Apple Park)での開催がオンラインと並行して決定し、その抽選が5月ごろに始まりました。

自分の所属している開発チームは毎年WWDCにリアルタイムで参加しており(つまり、オンライン開催のときはリモートで深夜2時から仕事を始めていた)、今年も例に漏れずチームの仕事としてWWDCに参加が決定。

そのため、抽選を受けて当選すれば現地へ、落選すればオンラインで参加することになるということでした。

当選発表日、自分は引越しの内見から帰宅中の電車の中でチームが当選結果(落選した報告)でワイワイしているところをSlackで発見し、急いでメールを確認しました。

Great news, Jun!

・・・・・・・マジすか?

引越し関連で心がざわついている中、このメールを見てさらに心拍数が30くらい上がりました。海外行くの?来月?英語ほとんど喋れないのに?

結果、社内からは自分を含めて3名が今回のイベントに当選し、とりあえずソロでの海外出張はなくなって安心したものの、息つく暇もなく出張の話が進んでいきます。なぜならもうこのメールを送って3週間で出発しなきゃならないので。

飛行機の手配してホテル取ってPCR検査の予約とってイベントのタイムスケジュール確認して出張申請出して・・・・・・正直この3週間は仕事をしっかりやれていたか曖昧です。

そんなこんなで当日になり、WWDCに参加しにカリフォルニア行きの飛行機に乗り込むのでした。

アメリカ(海外)に行ってわかったこと

さて、ここからはトピックにわけて海外に行って思ったこと、感じたことをまとめていきます。

英語が多少しゃべれなくてもなんとかなる

これは行き先にもよるかもしれませんが、今回の旅では空港から海外が始まっていた感じがします。というのも、カリフォルニア行きの飛行機には日本人がほとんど乗っていなかったのです。

搭乗待ちをする人たちはみんな明らかに日本人じゃなく、「あぁ…これから本当に日本じゃないところに行くんだな」と思いました。

一番最初に待ち受けていたのは税関の質問です。Purpose?って聞かれたらとりあえずSightseeingって答えておけばなんとかなる、という噂を聞いたのでそう言ったところ、めちゃくちゃ怪しい目で見られて行き先を聞かれました。

ホテルのある地名を言ったらより怪しまれ、挙句「YOU NOT SAY SIGHTSEEING! OK?!」て言われて強制的に「For Work....」ということになりました。まあ正解なんだけど。なんでわかんねん。

僕は英語力は皆無なわけではなく、高校卒業まで一応ずっと英会話教室に通っていたので、センター試験の英語のリスニングで毎回満点を取れるくらいには聞く耳は持っていました。

でもやっぱり話すとなると言葉がすぐに浮かんでこない。とっさに喋れるとしたら本当に相槌程度で、今回の旅でまともにコミュニケーションが取れたのはホテルのチェックインとか観光人を相手する人たちがメインでした。

でも、意外と相槌でなんとかなるなぁと思いました。とりあえず相手に聞くことを頭で英訳しておいて、それを口に出し、相手からの返答は"I see", "OK", "Yes", "Really?" 程度でなんか会話っぽくなるなと。

あと、聞くときも最初に "Sorry, what?" って言っておけば「あ、こいつ英語苦手なんだ」って察してくれて優しくなったりします。こういうテクニックを使えば現地でのコミュニケーションはいけそうだなと感じました。

翻訳アプリを使ってる暇はない

旅に行く前は「ゆーてコミュニケーション取りづらかったら翻訳アプリ使えばええか」的に考えてましたが、会話のテンポの中に翻訳アプリが入る隙はありません。

聞きたいことなんて大抵単純なことだからそもそも自分で翻訳できるし、英語だったら翻訳アプリを使わない方が英語に少しでも触れたことがある人なら流暢なコミュニケーションができると思います。

スペイン語とかロシア語とか、本当に1ミリも何言っているのかわからない!って場合にしか、翻訳アプリの出る幕はないのかなと今回の旅で思いました。

アメリカ人、本当に気軽に話しかけてくる

空港について荷物が出てくるのを待っている間だけで、2人に話しかけられました。

1人はここのコンベアがどこの飛行機のものか、1人は荷物を代わりに取ってくれないか。

空港を出てホテルに移動するときのUberの運転手もマシンガントークだし、ホテルの人も日本の受付よりもフレンドリーだし、街を歩いてたら道聞かれるし。

明らかに英語喋れなさそうな顔してると思うんだけど…結構おかまいなしの普通のスピードで話しかけてくるからビビりました。

でもその空気感はとても好きで、街で歩いている人たちにいつでも話しかけて大丈夫みたいな安心感があるのは、日本と違うところだなと思います。

地図の感覚がバグる

ある日の夜、社外の日本人と一緒にご飯を食べる機会があり、そのときに自分の泊まっているホテルの二つ隣の街まで行くことになりました。

そのときUberが一時的に使えなく、GoogleMapで調べているときに「まあ、二つ隣の街だし別に歩いていけるんじゃね?」と思って経路を調べたところ、なんと歩いて3時間。

大体新宿から三鷹まで歩くのと同じくらいの距離でした。(例えが分かりづらい)

基本的に移動は全部車で、道で歩いている人はほぼ皆無です。これがアメリカ…すべてがデカい。

ご飯はたしかに日本の方が美味い

海外に行った人は声を揃えて「日本はご飯が美味しい」と言いますが、1週間日本を離れただけでもそれがよく分かりました。

まず全体的に量が多すぎる。その割に味が濃すぎる。しかも若干冷めてる。肉しかない。

これはホテルのすぐ近くにあったハンバーガー屋さん"In-n-Out"のチーズバーガーセット的なやつだったんですが、もう渡された時点で別にあったかくない。

ポテトのところに"Fresh"って書いてあるのがわかると思うんですが、全然フレッシュさを感じない。これでもアメリカの中ではかなり美味しい方らしいです。

あとビビったのは、iHopというパンケーキ屋さんにあった"Breakfast plate"です。

いやデカすぎんだろ。しかもパンケーキがクソ甘い。これ朝食ったら胸焼けしまくって一日活動できんわレベルです。

メニューにはこちらのプレートで1000kcalくらいと書いてありました。朝食う飯じゃないことはたしか。

AppleGoogleも本当に存在する

僕がエンジニアを目指そうとしたきっかけも、実はiPhoneの発表会を見たからだったりするんですが、そんなAppleの本社の中に自分自身がいけるなんて夢なんじゃないかと思ってしまいました。

今回の旅では、Apple ParkとApple Developer Center, Infinite Loopの見学もさせていただきました。さすがApple、すべての建物のデザインがとてもかっこよくて見惚れてしまいました。

一応、Googleの本社も外観部分だけ見ることができました(工事中かつ休日だったので中に入ることはできませんでした)。

Googleを掌で転がしました

Appleで働いている人がこんな近くに普通にいて、普通にしゃべってるんだなぁと思うと、雲の上の存在だと思っていた人たちに少しだけ近づけた気がしました。

いろいろとモチベが上がる

アメリカに行ったことで、本当にいろいろモチベーションが上がりました。

まずは英語に対するモチベーション。やっぱりアメリカの人たちと話して、コミュニケーションがうまく取れないことがこんなにも悔しいことなのか、というのを感じました。

難しいことは話せなくとも、普通の日常会話くらいはスラスラ言えるようになりたい。英語ができるようになりたいと心の底から感じました。

二つ目はiOSエンジニアとしてのモチベーション。Apple Parkで行われていたAppleのエンジニアと喋ることができるMeet the teamでは、英語のコミュニケーションの取りづらさ以上に技術者としての会話のネタのなさを痛感しました。

そこまで専門的なことは言えなくとも、いろんなことに興味・疑問・基礎知識を持って話せるようになりたい。英語ができるのと同じくらいiOSエンジニアとしてもっとたくさん勉強しなければならないと感じました。

三つ目は人生のモチベーション(主語がデカい)。今まで日本の、それこそ本州から出たことがないくらいの人間だったわけですが、今回一気にアメリカまで来て、「ほんとに海を越えたところにこんな場所があるんだ」とか、「自分の知らない世界ってまだまだたくさんあるんだ」とか、そんなエモいことばっか考えていました。

日本はとても過ごしやすいところだし、これからも日本にいたいとは思うけど、いろんな文化とか歴史とか、まだまだ知らない世界をもっとたくさん見てみたいな、という気持ちになりました。

今回の旅である程度の自信はついたので、ワンチャン1人で海外もいけんちゃうかな、なんて思っています。

総括

そんなこんなで帰国してすでに3週間が経とうとしている今もこんなことを書けるくらいにはエモ散らかしてます。

この気持ちを忘れずに行動に移していきたいですね。とりあえず目の前の仕事を!小さなことからコツコツと!

最後にはっちゃけてる僕を載せて終わりにします。またね!

電気通信大学大学院を修了しました

お久しぶりです、じゅぎのんです。

前回の記事では大変お見苦しいところをお見せしてしまいました。その後同期たちは全員修了審査に合格し、無事卒業していきました。

デスクの掃除も、研究ポスターも、ホームページの更新も、論文のファイリングもせずに。

そんな人たちと離れることができる節目の日が、遂にやってきました。

学部卒業の時も4年間の振り返りをしていたので、今回も軽く2年間を振り返って社会人になる意気込みを改めて宣言しておこうかなと思います。

2020年 大学院1年生

2019年の2月頃から急速に拡大したコロナウイルスの影響がおそらく一番強かったのが2020年の春でした。

コロナウイルスで変わった環境の変化は、個人的にはメリットの方が多かった気がします。

まず一つ目は授業やゼミ。緊急事態宣言の中始まった大学院の授業やゼミはすべてオンラインで行われるようになり、個人的には大学院の授業にそこまで価値を感じていなかったためどちらかというと嬉しい気持ちがありました。

授業は案の定別に対面でやる必要のないものばかり、ゼミもM1ということでそこまでの進捗は求められませんでした。

二つ目にアルバイト。大学院からは学部の頃から続けているインターンシップに加えて、大学の附属図書館でのカウンター業務をするアルバイトも始める予定でした。

もちろんそんなものも対面でやるわけにはいかないのでオンラインでの業務になり、朝勤務開始時間ちょうどに起きて勤務開始のメールを送り、そのまま二度寝して終了時間になったら再び起きて勤務終了のメールを送る、最高のアルバイトでした。(この記事が図書館の人にバレたらヤバいです)

授業も顔出ししているわけではなかったので、授業の時間とインターンの業務の時間を被せて授業中に仕事したりもしていました。使う機会もないし、お金に関してはかなり余裕ができました。

三つ目に就活。就活もオンラインになったおかげで会社にわざわざ足を運んだりしなくてよくなり、とてもスムーズに進められました。

自分のキャリアとしてもターニングポイントとなった夏のインターンシップも、オンライン開催だったおかげで授業と少しだけ被っていたけど参加することができたり、「オンラインでよかったなぁ」と思う出来事はとてもいっぱいありました。

デメリットがあったとすれば、やはり部活。出場しようと思っていた大会が軒並み中止になり、正直目標を失った状態で活動をしていました。

もちろん部活自体も停止になっていたので、ここで大きくモチベーションが下がってしまった部員もたくさんいました。

個人的には、大学での生活はもう5年目だったのである程度生活リズムも自分で調整できるし、練習に関しても自分でそれなりに考えられるくらいには知識もあったので一人で練習することは比較的楽しくできたかな、と思っています。

おもりを使った筋トレがまったくできない状態だったので、このタイミングで家で使えるダンベルを買いました。案の定今は丁重にしまわれています。

2020年の活動トピックとしてはこんな感じでした。

自分の許容量以上のことは無理をしてやらないで、でもできることは全部やる、そんな1年間にしたいなと思います。

大学院に入学するときの記事でこんなことを言っていましたが、まあできることは全部やってたんじゃないかな。

2021年 大学院2年生

2021年でのトピックは、やはり就活と研究の二つでしょう。

就活は2020年の秋頃から内定に向けた面談が始まり、12月には二社から内定をもらいました。

そこから2ヶ月ほどどちらを選ぶかで悩み続け、結局iOSエンジニアになる道を選択しました。

就活はそもそも受けた企業が少なくて、落とされた回数もそこまで多くなかったためか面白かったなという感想です。

純粋にいろんな企業の人の本音が聴けるのは興味深かったし、本質的に自分が将来どうなりたいのかとか、なにをやりたいのかを真剣に考える機会になったのでとても有意義な時間が過ごせました。

無事に気楽な状態で春休みを過ごし、4月からは本格的に研究活動が始まりました。

夏の学会発表に申し込んで逃げ道をなくし、自分を追い込むことでなんとか研究を進めていきました。

同期はなにもしていなかったですが、それはもうどうでもいいです。ちゃんと研究を自分で進めることができた、それはいずれ大きな価値になると思っています。

6月頃からは研究活動と同時並行で内定者アルバイトも始めました。入社前にチームの中でコードが読めたり、仕事の進め方を学んだり、本当にやって良かったと思います。正直配属後の不安は皆無です。

Swiftも少しは力がついた気がしています。アルバイトの一番最後に着手したObjective-CのコードをSwift化する案件も、若干放り出した感はあるもののPRが出せたのでとてもよかったです。

学会発表の終わった夏休みからは、部活の引退に向けて練習を重ねていました。

それと並行して合宿免許にも行きました。ずっとお金がないから免許はもう一生取れないんだ、と思っていましたが、思い切って行ってよかったです。お金が貯まったのもコロナウイルスのおかげでもあるし、タイミングとしてはベストだったなと思いました。

二週間の一人暮らし体験は、「バストイレ別・独立洗面台は必須」ということを理解するのにはあまりにも長い時間でした。6月の一人暮らし開始に向けてそろそろ動いていきます。

部活の引退試合は、小さな記録会になってしまいました。本当は27大学対校戦でみんなに応援される中走り切りたかったけど、仕方ないです。

とにかく結果を出せてとても安心しました。僕は親切な人に恵まれたな、と感じる陸上の一年でもありました。

2022年 株式会社ZOZO 1年目

f:id:ogijunchang:20220331235056j:plain

そして明日、株式会社ZOZOに新卒で入社します。

ここまで大きく環境が変わるのは6年ぶりなので、正直戸惑いは若干あります。

まあでも1年目なんて、どの環境でも失敗することは当たり前とされるはずなので、恐れないで挑戦していくスタンスで行こうと思います。

実はiOSエンジニア以外にも、別のやりたいことが始動していたりもするので、今年は引越しだったり仕事だったり趣味だったり、いろんなことが一気に変わる一年になりそうです。

とにかく健康第一、太陽をたくさん浴びてぐっすり寝てえいえいかしこまで元気に毎日生きていこうと思います!やるぞ〜〜

研究室同期への怒り 修士版

f:id:ogijunchang:20220130172220j:plain
同期へ

こんにちは。修士論文を無事に書き終えたじゅぎのんです。

今年は論文の締め切りが比較的早くて、1/28に修論締め切り、2/4に発表をしたら大学での研究活動は終了になります(学会発表はまだ控えていますが)。

予稿の提出などもありますが、とりあえず修論が提出できたということで卒業はほぼ確定することができました。同期もね。

今回の記事はそんな研究室の同期についてなんですが、まあ2年前の同じ時期に同じようなタイトルの記事を書いていることはこれを読んでいるみなさんはご存知かと思います。

ogijunchang.hatenablog.com

今日はこれの修士版ということで、この記事に対するアンサーアーティクルみたいなものです。

正直この3年間、同じ研究室で一緒に過ごしてきて皮肉なことに彼らの人間性はある程度理解することができました。

2年前は

怒り(というかここまでくると呆れ)

と書いていましたが、もう正直あまり怒りという感情はありません。呆れというのもなんか違う、もやもやした感情が常に同期に対してはあるという感じでしょうか。

そんなもやもやをこの記事で吐き出すことで、今後の人生における反面教師として彼らには役に立ってもらおうと思います。あまりこういうことに時間を使うこと自体も良くないとは思いますが、どうしても止められそうもないし、意外にもこの記事を期待してくれている人が多いので書いておこうかと思います。

研究室同期が不快だと思う最大の要因

僕がここまで研究室の同期(女子と男子1名)に対して「不快だ」と思う最大の理由は、以下の3つです。

  • 欠席が他の研究員よりも明らかに多いこと
  • 研究の進捗が著しく悪く、それに対して自分で解決しようとしないこと
  • 上記2つのような状況であるにも関わらず、自分と一緒に卒業をしようとしていること

一番重要なのは、「自分と一緒に卒業をしようとしていること」です。

正直、もし彼らが他の研究室にいて同様のことをしていたとしても僕にとってはどうでもいいし、研究以外の要素で嫌いな部分はないので普通に友達としてやっていけると思います。

なので、もしこの記事を見て「自分も同じようなことをしている」と感じたとしても、僕はあなたのことを個人的に嫌いはしないので安心してください。僕は「研究室を一緒に卒業しようとしているゴミみたいな同期」に対して怒っているだけなので。そこだけは先に言っておきます。

その前提を理解した上で、一つ一つ説明していきますね。みなさんがもし僕と同じ立場だとしたらどう思うか、是非教えてください。

欠席が他の研究員よりも明らかに多い

「欠席なんてみんなするじゃないか、その程度のことで怒るのはひどいんじゃないか」と思う人もいるかもしれません。なので、事実ベースで話していきます。

まずは、僕の研究室のM2には、主に4つのゼミがあります。

  1. M2ゼミ…M2の学生+先生が集まり、毎週、修論の進捗について報告を行う
  2. 論文ゼミ…学生全員+先生が集まり、2週に1回、調べた論文をビブリオ形式で紹介する
  3. 進捗ゼミ…学生全員+先生が集まり、2週に1回、自身の研究の進捗を報告する
  4. テキストゼミ or アルゴゼミ…学生はどちらかのゼミに毎週参加する。学生のみが集まり、テキストゼミの場合は技術書などを読み、アルゴゼミの場合はアルゴリズムの問題を解く

ここで、4月からの自分を含めた同期のゼミの欠席を自分のわかる範囲でまとめました。

同期男子1(大学院から配属された留学生)

6/5(在留更新)
6/2, 6/22, 10/14(止むを得ない理由)
7/14, 12/13(具体性のない用事)
5/11, 10/19, 11/9(体調不良)
4/8(就活)
6/15, 7/20, 8/3, 8/24, 8/31, 11/2, 11/16, 11/30(無断欠席)

合計18回

同期男子2

6/18(提出物作成)
8/17, 8/24, 8/31, 10/1, 10/28(用事)
11/2, 11/9, 11/16, 11/30, 12/21(無断欠席)

合計11回

同期女子

5/12, 6/4, 7/9, 8/13, 10/12, 11/25, 1/5(体調不良)
4/1, 5/18, 6/30, 7/12, 7/21, 8/20, 11/4, 12/7(具体性のない用事)
1/10(実験)
6/8, 7/6, 7/20, 8/3, 8/10, 8/24, 11/2, 11/16, 11/30, 1/11, 1/18, 1/25(無断欠席)

合計28回

自分

7/26, 8/2(実験)
5/31(内定先の用事)
8/12(部活の遠征)
12/17(提出物)
10/7,8,12,14,15,19,21(合宿免許)

合計12回

この日付は、Slackで「休み」「欠席」と検索して上記4つのゼミで休んでいた回+M2ゼミで資料の上がっていない回の日付です。

自分は4個目のゼミの中でもテキストゼミに参加していましたが、僕以外の同期は全員アルゴゼミに参加していたため、アルゴゼミで無断欠席をした回数はわかりません。

ちなみに、アルゴゼミへの無断欠席に対しては後輩がこのように注意しています。

f:id:ogijunchang:20220130161932p:plain
後輩からのお叱り

これに対して2名の同期が「これからは参加できなくても問題を解くようにします」と返信しているため、同期が無断欠席していることは少なくとも数回に渡りあることが伺えます。

この欠席回数はきちんと数えたわけではないので参考程度になりますが、同期女子の欠席回数が多いのは明らかでしょう。28回って。

たしかに自分も合宿免許を秋にいれることでわざと研究活動から逃げたという面はありますが、ゼミで担当になっていた分はきちんと埋め合わせしましたし、同期が誰も夏の学会に参加しない中自分だけが学会に参加しました。

あ、言い忘れていましたが、自分以外の同期は全員学会に出ていません。僕はM1とM2の夏に2回発表しています。これは自分の意志もありますが、先生から「学会に出ることを目標にやろう」と言われたからでもあります。

つまり同期は「教授に言われたのに学会で発表していない」ということです。

では、今度は研究の中身についてみてみましょう。「欠席回数が多くとも、欠席した分研究していれば問題はない」と思う方は多いと思います。

研究の進捗が著しく悪く、それに対して自分で解決しようとしない

(珍しく)欠席をしなかったゼミでは、どんな進捗が報告されていたのでしょうか?M2ゼミの同期女子の進捗資料を見てみます。

f:id:ogijunchang:20220130164130p:plain
同期女子の進捗資料

「本当は下の方にもいろいろ書いてあったんじゃないか」という印象操作が疑われないよう、pdfの全面をお見せしたため空白が空いてしまいましたね。見辛くて申し訳ありません。

この進捗資料は、中間発表が終わった9/21から、1ヶ月半が経った11/9に提出された進捗報告資料です。

ちなみに、「2週間後にフィードバック内容(研究を進める)まとめます」と宣言したあと、次に進捗報告に現れたのは12/14でした。2週間とは?切り替えましたとは?

自分が頑張って、前日に夜更かししてまで作った進捗報告資料の横にこれが貼られ、ゼミの中で「研究やりたくないけど卒業はしたい」と教授に対して言葉で発する同期に対して、あなただったらどう思いますか?

僕は正直もう耐えられません。

上記2つのような状況であるにも関わらず、自分と一緒に卒業をしようとしている

僕と、同期が、卒業審査合格として一緒の評価を受けることがどうしても嫌だ。修論もこんな思いはしたくないな・・・

これは卒論のときに書いたブログの最後に書いてあった僕の心の叫びです。

2年前の僕、修論も同じ思いをしています。本当に申し訳ない。

2年前にこの記事を書いたあと、卒論の締め切り当日になって同期は卒論をやっと書き始めました。第一稿(といえるのかわからないもの)を提出したのが締め切り当日の夕方6時、その状況を見て僕は研究室から帰宅しました。

それから2年、彼らは全く同じことを繰り返しました。

同期女子は締め切り当日の朝第1稿を提出し、同期男子は結局締め切りが終わった後も完成版を共有していません。

僕はどうせこんな状況になるんだろう、と考えて締め切りの2週間前に第1稿を提出し、結局第4稿まで直しました。

僕はこれだけ修正したのに、同期は修正しないで出して許されるの? まだあと1時間半も時間があるのに、力尽きたとかいうよくわからない理由で提出して終わらせていいの? あんなによくわからない理由で欠席して研究しないでおいて、後輩やドクターの先輩に添削させていいの?

これまで「どうせ研究室を卒業したら二度と関わらない人に対してイライラしたところで、なんの生産性もない」と割り切って考えようとしてきましたが、そろそろそれも無理そうです。

まとめ

卒論の時は自分の研究の進捗もあまり良くなかったため人のことは言えない、と言うふうに考えていましたが、修士になってからはかなり計画的に研究を進めました。

夏には学会に参加し、目標としていたシステムも完成させることができ、驚くほどの成果が出たわけではないですが、自信をもって研究をしたと言える成果は出せたんじゃないかなと思います。

でも、だからこそ、それに伴って研究をしない同期に対しての負の感情は増していきました。

これから研究室に配属される後輩には、これだけは言いたい。

研究室の先輩と教授は選べるけど、同期と後輩は選べない

大学で唯一失敗したのは、研究室選びだったと思います。

安易に「この研究室ならなんでもやらせてくれそうだ」と決めましたが、「なんでもやれる」ということは「なんでも興味がある」人も集まれば「特に特定の研究に興味があるわけでもない」人も集まる可能性があるということです。

研究室は、大学+大学院6年間のうちの半分の時間を使います。研究室選びはしっかり考えてやりましょう。

ただ、そんな中でもしっかり研究をやっている先輩や後輩はいて、彼らと一緒に研究ができ、愚痴も言うことができたのはとてもありがたかったです。彼らがいたおかげで、なんとか心が病まないで済んだと思います。本当にありがとう。

これからは、この嫌だった経験も糧にして、同じ志を持った仲間と一緒に、最高の環境で働けることを祈って頑張ります。

仕事頑張るぞ!!!!

f:id:ogijunchang:20220130173322j:plain

2021年の反省、2022年の抱負

こんばんは、もう今年も終わってしまいます(というか日付が変わってしまいました)、じゅぎのんです。

毎年恒例になっているので今年もやります、今年の反省と来年の抱負。

去年の記事はコレ。

ogijunchang.hatenablog.com

2021年やったこと

研究

一応なんとなく目処は経っているので去年よりかはスムーズに研究は進むんじゃないかなと思ってます。

これは間違いなくそうですね。

卒論のときはこの時期になってもまだ具体的な実験の内容とか決まっていなかったんですが、さすがに修論ともなると3年間やっている分スケジュール感もだいぶ余裕が…あるわけではないですが心に余裕はあります。

もう実験は半分が終了しているので、残り半分をしっかり終わらせられればあとは分析して書くだけです。

一応論文の仮締め切りとして1/21が設定されているので、あと20日間全力で論文執筆をやっていこうと思っています。

ちなみに同期の研究はもうなにやってるのかよくわかっていません(興味もない)。

陸上競技

去年あげていた目標はこんな感じ。

このうち目標を完全に達成できたのは走幅跳の7m超え、目標の一部を達成できたのは十種競技でのPBでした。

まさか専門種目ではない走幅跳で7m超え、しかも関東インカレ標準の7m10を超える記録が出せるとは思っていませんでした。

コンディションがよく、途中棄権もなければ東京選手権で十種競技6300点もいけたんじゃないか、という後悔は少しだけあります。

ただ、27大学対校戦という大きい大会がなくなった中で6121点というもとのPBから100点以上の記録更新ができたのはとりあえずいい締めくくりになったかな、という感じです。

去年の振り返りではこんなことを言っていました。

最近は、記録として残すことも重要だと思っているけどそれ以上に大学陸上6年間のラストに相応しい部活にするにはどうすればいいのか、メンタルの面でいろいろ考えています。

結局色々考えましたが、陸上競技というのは生涯を通して付き合っていく趣味になっていくんじゃないかな、というのが1年間考えた陸上に対する結論でした。

大学陸上はこれで終わりになりますが、きっとこれからも陸上競技生涯スポーツとして長い付き合いをすることになりそうです。

プログラミング

去年の抱負を言っている時はまだ就活が終わっていないときだったので、とりあえず無事に就活が満足する形で終わらせられたのは今年一番よかったことですね。

今はインターンと並行して内定者アルバイトも始めていて、Swiftにだいぶ苦戦してます。

一応具体的な目標を決めていたらしい。

  • 技術書を10冊読む(失敗)
  • 技術者試験へチャレンジ(成功)
  • 競技プログラミングを継続させる(失敗)

競プロは数学力・アルゴリズム力をあげるためにやった方がいい気はたしかにします。コンテストに参加できないとなかなかやる気がでないですが、少しずつでも再開したい…

技術書は去年よりかは読めた方だと思います。

9月に参加したiOSDCの抽選キャンペーンで「達人プログラマー」をいただき、完全に積読と化しているのでこれを研究が終わったら最優先で読んでいきたいですね。

趣味

今年は新たにウマ娘という一大コンテンツにどハマりした年になりました。

一応ほっそりとではあるけどゲームも続けていて、彼女らに僕が達成できなかった夢を乗せて走ってもらっています。

どハマりしすぎてブルーレイを全巻購入しました。アニメのブルーレイを全巻購入したのは実はウマ娘が初めて。

テイオーの何度も挫折を繰り返してからの奇跡の復活劇は僕の大学陸上とも少し重なる部分があって共感の嵐で泣けたので、これからもちょくちょく見返したいなぁと思っています。

ただやっぱりソシャゲが長続きしない体質なので、デレステもそこまで続かなかったしアイドルランドプリパラは結局配信してないし(配信されてもガチでやり込むかは微妙)、ウマ娘に関してはほっそりとストーリーを読む程度に進める、というのが今後のプレイスタイルになるかなというかんじです。

2022年やりたいこと

2020年、2021年はやりたいことの大きな枠として研究・陸上・趣味の3つを挙げていました。

2022年は大学院卒業、ついに学生卒業ということでやりたいこともガラッと変わります。

仕事

まあ一番はコレですね。

無事に株式会社ZOZOへと入社が決まり(ZOZOテクノロジーズが合併吸収されたのは少し驚きましたが)、4月からは日本最大級のファッションサイトを運営する会社で仕事をすることができます。

まだ配属が確定したわけではありませんが、どこの配属になったとしても間違いなく今までの開発とは比にならないくらいの大規模な仕事が待ち受けています。

プログラミング歴としては初心者ではない程度ではありますが、Swift歴は完全に初心者の僕はスタートダッシュで差を縮めるしかありません。

仕事としてやるからには全身全霊でくらいついていきたいと思っています。

陸上でそういう根性は養い続けてきたので、そこに関してはまあまあな自信があります。

とはいえそれで体や心を壊してもいけないので、楽しみながら大きくスキルアップできるような年にしたいです。

先輩の技術力を上回っていくくらいの心持ちで仕事に挑みます!

自立

学生を卒業したあとに仕事の次にくる大きなイベントはおそらく一人暮らしでしょう。

僕は2年前の大学卒業くらいからずっと(本当にずっと)一人暮らしがしたいと言い続けてきて、ついにやっとその時が近づいてきています。

今年は合宿免許に行ったことで2週間のプチ一人暮らし(in兵庫)を経験して、なんとなく一人暮らし生活の寂しさと楽しさを味わうことができました。

総括としてやっぱり一人暮らしはしたいという気持ちになったので、社会人始まったらなるはやで一人暮らしを開始する予定です。

物件探しから実際に生活を始めるまでかなり忙しい日々になると思いますが、学生から一歩踏み出して社会人になったという自覚と自立ができるように頑張りたいです。

2022年は一人の大人として生きていける生活力を身につける年にしたいですね。

陸上競技

大学陸上を引退した今、来年からは趣味としての陸上競技を新しく始めようと思っています。

ランニングではなく陸上競技。やっぱり10種目やってきて、不完全燃焼のまま終わってしまった種目は腐るほどあります。

特に走高跳の2mと100mの10秒台。この二つができたらなんとなく区切りがつけられそうな予感がしています…

100mに関しては冬季練もかなりガチでやらないといけない気がするので、ちょっと来年は厳しいかもしれませんが、必ず達成したい目標の一つとして人生ノート(ないけど)に書き込んでおきます。

趣味

こちらは相変わらずです。

好きなものは好きって言える、そんな環境を今後もずっと大事にしていきたいという気持ちはかわりません。

一人暮らしになったらより自分の趣味が大解放されてしまいそうな気がしますが、TPOをわきまえた範疇でオタクします。

2022年はどんなコンテンツに新しくハマるのか、今からワクワクがとまんない!

総括

2018年に「将来いいエンジニアになるためにアウトプットをするぞ」と決めて開設したこのブログもすでに3年が経ち、いいエンジニアになる土壌に踏み入れる権利を得るところまで来ました。

あとは自分の努力次第、ここからは新しい人生の章として今までの自分の良さを引き継ぎつつ新しい自分の良さにも磨きをかけていきたいと思います。

f:id:ogijunchang:20220101005343j:plain

「やりたいならやれよ。私はエンジニアのてっぺんに立って絶対に夢を叶える。大エンジニアになりたい!」

iOSDC Japan 2021に初参加しました

f:id:ogijunchang:20210920212520j:plain

お久しぶりです、じゅぎのんです。ネットで活動するときの名義が結局定まりきらず、一部でじゅぎのんとしてやってきたもののおぎじゅんになりつつあります。

今日はiOSDC Japan 2021に初めて参加したので、その感想をサクッと書いていこうかと思います(#iwillblogを入れてしまったので)。

iOSDCとは

iOSDC Japan 2021はiOS関連技術をコアのテーマとしたソフトウェア技術者のためのオンラインカンファレンスです。 日本中、世界中から公募された100本を超える知的好奇心を刺激するトークの他にも、パンフレットに掲載された技術記事、参加者であれば誰でも作れる即興のトーク・アンカンファレンスなど、初心者から上級者まで楽しめるコンテンツがみなさんを待っています! (iOSDC Japan 2021 公式サイトより)

実は僕自身こういったカンファレンスに参加するのは初めてで、しかもiOSエンジニアとしてはまだ1年経っていないような自分でも理解できる発表はあるんだろうか、と思っていました。(Swift開発歴については以前の記事参考)

結論から言えば、想像以上に楽しめました。

「初心者から上級者まで」と謳っているように、かなりニッチなテーマを話されているセッションもあれば基礎的な内容やコードを全部理解できなくても楽しめるような発表もあり、初心者の自分でも糧になるものはたくさんありました。

聞いていてとても面白かった発表

iOSDC当日にリアルタイムで聞いていてとても印象に残ったトークはこんな感じ。

Day0 SwiftUI で実プロダクトを音速リリースした話 - AkkeyLabさん

fortee.jp

SwiftUIをプロダクトで採用した際の実際の使用例や、逆にSwiftUIでは解決できない(したくない)部分はどこだったのかなど詳しく解説されていました。

個人的にはスライドのデザインや発表の仕方でとても引き込まれるものがあり、簡単に理解できるような工夫がされていてとても良いなぁと思いました(小並感)。

実際にSwiftUIが採用されているアプリ「dim.」をダウンロードしてみましたが、ミニマルなデザインの中にもHapticがあったりタイトルの小さなアニメーションだったりUXにとても力が入れられているなぁと思いました。(寄付したことでもらえるステッカーもよい)

就職後の実務ではなかなかSwiftUIに触れることは難しいかもしれないですが、個人開発では取り入れられるようにどんどん試していってみたいなと思います。

Day1 noteのiOSアプリで実装したアクセシビリティの全て - fromkkさん

youtu.be

fortee.jp

iOSDCの感想ブログやスポンサーブログでもよく使われているnoteの、iOSアプリでのアクセシビリティのお話です。

アクセシビリティ、単語は知っているし意味ももちろん知っていましたが、実際にどういう部分に対応することでアクセシビリティを満たしたと言えるのか正直全然知りませんでした。

トークでは盲目のユーザーを対象にしたVoiceOver対応について詳しくお話されており、実際のプロダクトではどういった部分に修正を入れなければならないのかを具体的に紹介してくださり、とても面白かったです。

あとやっぱりスライドや動画のデザインもすばらしく、見ていて心地いい発表でした。

noteのサービス自体のデザインもとてもかわいくて使いやすいし、そういった小さな心配りがすべてnoteのサービスに繋がっているんだろうなぁと思いさらにnoteが好きになりました(なのにはてなブログでごめんなさい)。

Day2 あらゆる情報を楽に正しく String にフォーマットする - 令和2021年から脱却せよ - treastrain / Tanaka Ryogaさん

fortee.jp

Swiftで開発するときにほぼ必ず使うであろうFormatterについて深掘りしたトークです。

ここのトークは他のトークよりも長い40分の発表でしたが、本当に面白くて40分あっという間でした。

日付や時刻を変換するときに使うDateFormatter以外にもFormatterができることはめちゃくちゃ多くて、一瞬で実装できてかつ自前で実装するよりも正確(他言語対応も含め)であるということで、使わない手はないなと思えました。

個人的には燃費で馬力換算してくれるのとか需要どこにあるねん、て感じでめちゃくちゃ面白かったです。

*追記 馬力はエネルギーの話でした・・・・・

f:id:ogijunchang:20210920233628p:plain

Formatterだけで単位換算アプリ作れちゃうんだなぁと聞きながら思っていましたが、それ以外にどうやって実際に使われているのか使用例が見てみたいですね…

冒頭の寸劇でスライドと同様にニコ生でも発表者さんがコメントを流しているのかと思いきや、普通に視聴者さんがまるでリンクしているかのようにコメントしていたとask the speakerで知った時はビビりました。


Day0-2のそれぞれ一番印象深かったトークを紹介しましたが、もちろんこれら以外にも本当に面白いトークばかりで3日間が一瞬でした。

3日間が一瞬だった原因はそれだけではありません。なぜなら…

iOSDCチャレンジがあったからです。

自分は初参戦だったので去年も同様の企画があったことはDay2で初めて知ったんですが、iOSDCチャレンジとは:

「iOSDCトークン」を探してスコアを獲得し、そのスコアの合計を競う全員参加型の企画です。 iOSDCトークンは # (シャープ)から始まる文字列で、パンフレット内や公式サイト、スポンサー各社のブログ記事、各種ノベルティなどに隠されています。

パンフレットを見たときに早くこれがやりたいと思っていて、チャレンジページが公開されてすぐに入力をはじめました。

上位の方のブログでスプレッドシートで管理されている方もいて、さすがに敵わんな、という感じです。

僕は事もあろうにノベルティボックスを早々に解体して廃棄してしまっていて、フライヤーなども一通り読んで手元にすでになかったのでそういったところにもあると知った瞬間に絶望しました。

ところがDay1に入って公式がノベルティの写真を上げてくださり、これには本当に助けられました。

またDiscordでもヒントになる会話をされていたり(特にnoteの「#ファッシ…」や「#音楽」の部分)、ブログリンクを上げてくださる方もいてそのおかげでなんとか5位に入ることができました!

f:id:ogijunchang:20210920223048p:plain
「うさぎかわいい」とコメントしてくださった方、ありがとう

チャレンジ中はずっと7位〜13位あたりをウロウロしていて、これって何位以上の人がプレゼントもらえるんだろう…と思って最後の#クロージングを見ていて、「5位の方はこちら!」と言われた瞬間に結構絶望しました。

14時~15時のポイントが隠れている間に見つけた数個のトークンで僅差で5位になることができ、無事「育てるタオル」なるものをいただけることになりました〜!(本当にありがとうございます)

自分が回答できなかったトークンみましたが、#にゃんチャレと#三日坊主防止だけはどこにあるのか本当にわかりませんでした。(twitterも見たんだけどなぁ…)

あとは#iOSDC2021を入れていなかったのはマジで恥ずかしかったです。

discordで最後にトークンについてすこしだけチャットできてよかったです笑


今回は参加者ということで、チャレンジに入賞したことで名前も一応載せていただくことはできましたが、やっぱり自分も何かしら発表してみたい!

来年からはiOSエンジニアとして社会人になるわけですが、こういった場で盛り上がるような話題を提供できるような、そんなエンジニアになりたいと思いました。

f:id:ogijunchang:20210920224204j:plain
がんばりま〜す

初めてSwiftでアプリ開発をした話(そしてアプデで却下された話)

お久しぶりです、じゅぎのんです。

就活が終わって新学期が始まり、そろそろ研究に本腰が入り始める時期になってしまいました。

7月からは実験も始まるので、内定者バイト・研究・部活の結構ハードスケジュールになってしまった…

どれも手を抜けない(抜きたくない)ので、気楽に頑張っております。

さて、今回はSwiftでアプリ開発をやってみたという記事で、せっかくなので詰まったところとかWebとの違いとか所感をかければいいなと思って書いています。

作ったもの

先に、今回Swiftで作ったものは音量ボタンで制御できるストップウォッチのアプリです。

Volume Watch

Volume Watch

  • Jun Ogino
  • ユーティリティ
  • ¥120
apps.apple.com

githubにコードがまるまる上がっているので、そちらもぜひ見てみてください。(Starくれると嬉しいな〜)

github.com

Swiftを勉強し始めたきっかけ

まず、時は2,3年前に戻ります。

僕がインターンを始めたばかりのときに当時マネージャーだった先輩から、「いい感じのストップウォッチのアプリがあったらよい」というだいぶふわっとした要望を受け、当時インターンで開発を始めたばかりの僕は成長(笑)のチャンスだ!と思いアプリの作成を決意しました。

今まで僕が学部生のころから触ってきた技術は、JavaScriptフレームワークであるReactを使ったネイティブアプリ用のライブラリ、React Nativeでした。

reactnative.dev

JavaScript(React)を知っていれば大体開発ができるということで、Webの技術を触りながら今ドキのアプリ開発ができるという体験はなかなかよく、スタートアップにはうってつけの技術だなぁという印象でした。

ただ、やっぱりiOSAndroid一緒に開発しているという部分もありAppleAPIを直接使うわけではないので、やれることには限界がありました。

今回作った音量ボタンで制御できるストップウォッチアプリというのも、音量ボタンでの制御がReact NativeではできないことからSwiftならではのものと言えます。

マネージャーにいろいろ話を聞いた結果、「物理ボタンでウォッチが制御できないと結局どのアプリ使っても同じ」ということがわかり、当時React Nativeの乏しい知識しかなかった僕は完全に挫折しました。

一応作ったやつはこれ。

GitHub - Ogijun2018/newStopWatch

しかし就活でその心にもう一度炎が宿ります。

就活に関しては別の記事で長々と書いたのでそちらを見ていただければわかりますが

ogijunchang.hatenablog.com

最終的に決めたのはアプリ開発者としての道でした。

ただ僕はアプリじゃなきゃ嫌というわけではなく、単純にこの会社ならアプリの開発が一番ユーザーに価値を提供できるかな、と思ったことが最大の理由です。

一次面接が終わった後にフィードバックの面談を受けた時に、こんなことを言われました。

多分じゅぎのんくんも一番の懸念点として思っている、今まで触ったことのない技術でこれから仕事をしていくというところに関しては会社側も懸念材料としてある。

じゅぎのんくんがこれからSwiftで仕事をしていっても大丈夫だ、って言えるような覚悟を見せてほしいです。

覚悟を見せるってなんやねん…って思っていろいろ考えましたが、やっぱりエンジニアである以上技術の習得が一番の覚悟になるよなぁということで、ここでSwiftでアプリ開発をすることを決意しました。

どんな勉強をしたか

その面談を受けた日の帰りにSwiftの参考書を買って1週間でとりあえず入門書を一周しました。

そのとき買った入門書がこれ。

やるなら一気に、でも最低限の内容はちゃんと学べるような本を選びました。

結構分厚い本ですが、最初の方はXcodeの使い方とか基本文法でバリバリ進めるので、そんなにやってないのにページがたくさん進んでなんかモチベーション爆上がりしてました。

本を読み終わった後は早速ストップウォッチの開発に取り掛かりました。

当たった壁

Swiftのバージョン違いによる体系の違い

開発するぞ!となったときに一番最初に当たった壁がSwiftのバージョンの違いによるコードの違いでした。

Swiftは現時点で5.4になっていますが、入門書はWWDC2019から登場したSwiftUIを使ったアプリ開発を紹介していました。

SwiftUI Overview - Xcode - Apple Developer

つまり、2019年以前に書かれたコードはすべて入門書とは違う書かれかたをしているため、結局ネットのコードを利用するとなったときには再度学び直しが必要であるということです。

結局SwiftUIの記事はありえんほど少なくて、Storyboardを使った開発に切り替えました。

さらに古い記事だと、Objective-Cのコードもあったりしてバージョンの違いによるコードの違いはReact Nativeにはない大変なところだなぁと正直に思いました。

レイアウトの仕方が独特すぎる

React Nativeではアプリの中の要素を並べたりするとき、FlexboxというWebでは割と一般的なstyleの手法で書いていました。

Layout with Flexbox · React Native

iOS開発はAutoLayoutという様々な「制約(Constraint)」を加えることでオブジェクトの位置を決定する仕組みが使われています。

これぱっと見かなり独特で、最初は何言ってるか全然わからなくて絶対座標で指定してしまっていました。

それをシミュレーターで動かしてみると、iPhoneX系では真ん中に表示されるのに、iPhone5系だとめちゃくちゃズレて表示されるみたいな。

束縛方法はいろいろあり、Xcodeのなんかよくわからんアイコンをいろいろいじって設定します。

qiita.com

Xcodeがまずそもそも複雑っていうのも壁の一つではありました。

React Nativeを使っているとちょくちょく使うタイミングがあったので、それにだいぶ助けられた感じはします。

一からXcodeを使いこなせるようになるまではかなり時間かかるんじゃないかなぁ…

久しぶりの型あり言語、そしてOptional

僕が今まで開発で触ってきた言語はJavaScriptとかRubyとかPythonが主で、つまり動的型付け言語ばっかりでした。

最後に静的型付け言語をしっかり触ったのは学部3年のCの授業か、Javaとかかなぁという感じでかなり型に対しては食わず嫌いしていた面がありました。(TypeScriptも結局ちゃんとさわれてない)

Swiftをやるに当たってCとかの型の概念に加えて、Optionalという新しい概念についても勉強しました。

Optionalは予期せぬところでnilを参照してバグを生み出すことをなくすための仕組みって感じですが、変数に「?」とか「!」とか「??」とか「!!」とかよくわからん記号がついているのはなかなか不安になりました。

正直いまだにOptionalをすることによる恩恵を受けているか微妙ですが、もっと勉強して上手く使えるようになりたいです。

作ったアプリ

そして作ったアプリはこちらになります。

github.com

githubにgifがありますが、音量ボタンを押すのと同時にスタート/ストップが動いていることがわかると思います。

なんとか最終面接までに形にすることができて、これをアピールしたらかなり喜んでもらえました。(結果内定いただけたので、めでたしです)

さて作れたことだしアプリリリースしてみるか〜!と思いましたが、ここで最大の壁に当たりました。

音量ボタンの操作がAppleガイドラインに違反する

App Store Reviewガイドライン - Apple Developer

音量ボタンで制御するコードをいろいろ調べているうちに、なんとなくわかってしまったことだったのですが、Appleガイドラインには以下の文章が記載されています。

2.5.9 音量を上げる/下げる、サウンドオン/オフといった標準スイッチの機能、および他のネイティブユーザーインターフェイスの要素やその挙動を変更または無効にするAppは却下されます。たとえば、ユーザーがその動作を想定できる別のAppや機能に対するリンクをブロックすることはできません。

割と絶望しました。まあだからこそAppStoreに同様の機能がついたアプリがないのかもしれません。

AppStoreに上げないで他者にアプリを配布する仕組みとしては二つあり、AdHocとIn-Houseがあります。

AdHocはアプリのデバッグ用として、UDIDを登録している端末にだけアプリを入れられるような仕組みです。

これには一番面倒な制約があり、有効期限があって永久にアプリが使えるわけではありません

これじゃあ俺が卒業したらもう部活の人たちには使ってもらえないんか… そう思ってかなりしんどい気持ちになりました。僕はユーザーファーストな開発をモチベーションにしているので。

まあでも万が一の可能性もあるし、一応審査出してみるか…と思って審査を出した結果、なんかよくわからないけど通りました

ということで現在は1.3.0というバージョンのものが上がっていると思います。

Volume Watch

Volume Watch

  • Jun Ogino
  • ユーティリティ
  • ¥120
apps.apple.com

これで一件落着やん、ということで、部活の人には結構喜んでいただけました。

ただ機能としては本当に最小限で、ラップを自動で保存して呼び出せるメモリー機能があればいいな、というふうに思いながらリリースしていました。

そしてこの前、Realmというローカルデータベースを使ったラップメモリー機能を実装(v1.4.0)してアプリの審査を再度出した結果、審査から弾かれました。

f:id:ogijunchang:20210629003239p:plain
絶望の却下

翻訳すると、あんたのアプリ普通の音量ボタンの使い方してないからダメやで、ガイドライン準拠させてもっかい審査だしてくれやということですね。

音量ボタンで操作できなくなると僕のアプリのアイデンティティは消滅してしまうので、このアップデートはいまだにかけられていません;;

日にちをおいて再度審査をだしたら審査する人が変わってワンチャンあるんじゃないか!?と思ってやってみたりしましたがやっぱりダメでした。

Appleの審査工程謎ですね。そしていまだストアから消えない僕のガイドラインに違反したアプリはいつ消えるのか…神(Apple)のみぞ知る、です。

総括

ひとまず就活や部活で助けになるためにアプリを作成しましたという話でした。

これ以上追加開発をしてもストアにあげられない以上、今後の開発はどうしようかなぁ…という気持ちです。

カメラでシャッターボタンにしてるんだから別にええやん…

Appleさん、よろしくお願いします。

f:id:ogijunchang:20210629004038j:plain