My internship experience

- nihal111
Nihal Singh

Android JP Team

My work

What did I work on?

  • Listing Templates
  • Writing Tests
  • Formatting checks and automation

Mercari JP Android app
- The main marketplace app

Listing Templates

A feature that allows users to reuse a template to fill in the product details during listing. There would be a few default templates to start with. Each user can create and edit templates. These templates can later be used to overwrite or append to the product description.

テンプレートの一覧表示

リスティング中にユーザーがテンプレートを再利用して商品の詳細を記入できるようにする機能。最初にいくつかのデフォルトテンプレートがあります。各ユーザーはテンプレートを作成して編集できます。これらのテンプレートを後で使用して、製品説明を上書きまたは追加することができます。

Demo Video

Writing Tests

  • Wrote unit tests for the first time
  • Familiarized myself with the testing paradigm and frameworks like Mockito and Robolectric
  • All the logic from the new code is completely tested!
  • Wrote a few additional tests for Exhibit Screen API

テストの作成

初めてユニットテストを書いた
MockitoやRobolectricのようなテストのパラダイムとフレームワークに精通している
新しいコードのすべてのロジックは完全にテストされています!
Exhibit Screen APIのいくつかの追加テストを書いた

Formatting automation

Took initiative to increase clean code in the Android codebase.

Set up Reviewdog to auto-review Pull Requests to point out formatting errors from checkstyle and ktlint.

Created a Circle CI job to run Reviewdog on every build.

フォーマットの自動化

Androidのコードベースでクリーンなコードを増やすためのイニシアチブを取った。

Reviewdogを設定して、checkstyleとktlintから書式設定エラーを指摘するためのPull Requestを自動レビューします。

すべてのビルドでReviewdogを実行するCircle CIジョブを作成しました。

Learning

  • MVP architecture
  • Kotlin for the first time
  • RxJava
  • Testing- Mockito and Robolectric
  • Automation- Circle CI
     
  • Workflow at Mercari
  • Working in a diverse team

MVP is da real MVP

Biggest technical takeaway from the internship.

First time I strictly used an architectural pattern for an Android project.

インターンシップからの最大の技術的な持ち帰り。

初めて私はAndroidプロジェクト用のアーキテクチャパターンを厳密に使用しました

What is MVP?

Why MVP?

  • Decoupling logic from Android framework
  • Separation of responsibility
  • Easier testability
    (Unit tests > Instrumentation Tests)
  • A common architecture for the team to understand
  • Androidフレームワークからのデカップリングロジック
  • 責任の分離
  • テスト容易性(ユニットテスト>計装テスト)
  • チームが理解できる共通のアーキテクチャ

 

Kotlin is fun

Kotリン

  • First time I wrote Kotlin
  • Almost all the new code I wrote was in Kotlin
  • Cleaner and more efficient than Java
  • Still need to get a hang of it
  • 初めて私はコトリンを書いた
  • 私が書いたほとんどすべての新しいコードはKotlin
  • より洗練されたJavaより効率的
  • まだそれを取得する必要があります

All suited up!

(Barely) Learnt how to use the Java library that makes it easier to write asynchronous  programs.

非同期およびイベントベースのプログラムの作成を容易にするJavaライブラリの使用方法を学びました。

RxJava

Writing tests with
Mockito and Robolectric

Automation

Wrote a Circle CI job to run Reviewdog for automatic Pull Request reviews on formatting errors

Experience

Exploring Japan

Tokyo

Disney Sea

Kyoto

FujiQ

Izu Oshima

Mt. Fuji

THANK YOU
for having me

It was an amazing journey

それはすばらしい旅でした

Mercari Internship Overview

By Nihal Singh

Mercari Internship Overview

  • 840