27
MOBILE TEAM ON A DAILY BASIS by Grand Parade 1

Mobile Team on Daily basis - Kamil Burczyk & Michał Ćwikliński (Mobiconf2017)

Embed Size (px)

Citation preview

MOBILE TEAM ON A DAILY BASIS

by Grand Parade

1

MOBICONF.ORG | 5-6 OCTOBER 2017#mobiconf2017 2

Michał Ćwikliński

[email protected]

https://github.com/emce

@em__ce

Kamil Burczyk

[email protected]

https://github.com/burczyk

@KamilBurczyk

MOBICONF.ORG | 5-6 OCTOBER 2017#mobiconf2017

Established: 2011

City: Kraków

People: 250/300 till end of 2017

Worked before for:

Grand Parade: about company

3

MOBICONF.ORG | 5-6 OCTOBER 2017#mobiconf2017

William Hill

4

MOBICONF.ORG | 5-6 OCTOBER 2017#mobiconf2017

Gambling Facts

5

MOBICONF.ORG | 5-6 OCTOBER 2017#mobiconf2017

Mobile Team

6

MOBICONF.ORG | 5-6 OCTOBER 2017#mobiconf2017

Mobile Team - facts

23 developers12 iOS & 11 Android

640 yearsWith 124 years of experience

51 cupsof coffee daily

77.764 linesof code in Swift

44.422 linesof code in Kotlin

7

MOBICONF.ORG | 5-6 OCTOBER 2017#mobiconf2017

Mobile Team

MOBICONF.ORG | 5-6 OCTOBER 2017#mobiconf2017

Team Standards

9

Tools

Tests

Documentation

CI

Public API

Avoiding dependencies

MOBICONF.ORG | 5-6 OCTOBER 2017#mobiconf2017

Mobile applications

10

25 mobile applications

Kotlin and Swift on production

AppStore, Google Play and standalone

Core libraries (Mobile SDK)

MOBICONF.ORG | 5-6 OCTOBER 2017#mobiconf2017

Swift & Kotlin on production

11

MOBICONF.ORG | 5-6 OCTOBER 2017#mobiconf2017

Mobile SDK team

12

MOBICONF.ORG | 5-6 OCTOBER 2017#mobiconf2017

Swift & Kotlin on production – common architecture

Logger+ filters: MutableList<LogEntryFilter>+ minimumSeverity: LogSeverity+ handlers: MutableList<LogEntryHandler>+ enabled: Boolean

+ e(message: String)+ w(message: String)+ i(message: String)+ d(message: String)+ v(message: String)+ wtf(message: String)

Logger+ filters: [LogEntryFilter]+ minimumSeverity: LogSeverity+ handlers: [LogEntryHandler]+ enabled: Boolean

+ error(message: String) -> void+ warning(message: String) -> void+ info(message: String) -> void+ debug(message: String) -> void+ verbose(message: String) -> void

MOBICONF.ORG | 5-6 OCTOBER 2017#mobiconf2017

Swift & Kotlin on production – elastic architecture

HeaderState

.unauthorized

.processing

.authorized

<state change>

<state change>

~ Redux

MOBICONF.ORG | 5-6 OCTOBER 2017#mobiconf2017

Mobile Culture

15

MOBICONF.ORG | 5-6 OCTOBER 2017#mobiconf2017

Slack Time: GP Interview

16

MOBICONF.ORG | 5-6 OCTOBER 2017#mobiconf2017

Slack Time: GP Betting League

17

MOBICONF.ORG | 5-6 OCTOBER 2017#mobiconf2017

Slack Time: WH Cube

18

MOBICONF.ORG | 5-6 OCTOBER 2017#mobiconf2017

Slack Time: GPS Tracker

19

MOBICONF.ORG | 5-6 OCTOBER 2017#mobiconf2017

Agile best practices

2-week long sprints

Daily code reviews

Daily standups

Bi-weekly retrospectives

Bi-weekly groomings and sprint plannings

Bi-weekly demos and published artifacts

20

MOBICONF.ORG | 5-6 OCTOBER 2017#mobiconf2017

Mobile Tech Talks

NoSQL

TDD

Elasticsearch

Swift backends

Core ML

App Architectures

Open GL ES

Realm

Audio Processing

Core Data

Core Bluetooth

21

MOBICONF.ORG | 5-6 OCTOBER 2017#mobiconf2017

Pair Programming iOS/Android

22

Learning other platforms

Platform-independent point of view

Common interfaces

Bringing business value over

fighting platform wars

MOBICONF.ORG | 5-6 OCTOBER 2017#mobiconf2017

Community open

23

MOBICONF.ORG | 5-6 OCTOBER 2017#mobiconf2017

Top tips for new team building

24

Optimise long-term

Don’t be afraid of hiring people better than you

You won’t code all the time

Create standards before writing first line of code

Consider cross-platform cooperation

Find a leader not a boss

Share your knowledge

And you can bet on it!

Integrate

MOBICONF.ORG | 5-6 OCTOBER 2017#mobiconf2017

Contest

25

Swift and Kotlin tasks

Stand in common space

Valuable prize

Result announcement: Friday 2pm

&Q&Aquestions answers

26

Kamil Burczyk Michał Ćwikliński@KamilBurczyk @em__ce

THANK YOU!

27