Tool and processes we use to build apps quickly and to a very high standard

  • View
    122

  • Download
    1

  • Category

    Mobile

Preview:

Citation preview

Tools and processes we use to build apps quickly and to a very high standard.Timur Garifzyanov

1. Badoo2. Windows phone at Badoo3. Architecture, tools, patterns

Badoo

Badoo - 269,570,384 registered

190 countries

+250 employees who speak 46 languages

Moscow and London

Technologies

Mobile 80% - Web 20%

Platforms

User Profile Current World Region Android iOS Windows

AFRICA 5% 1% 6%APAC 1% 2% 0%ASIA 7% 5% 7%EURO 41% 42% 42%LATAM 21% 6% 33%

MENA 9% 7% 3%NAMER 17% 37% 9%

Windows phone at Badoo

OS Percent8.10 84.78.0 8.077.10 6.3210.0 0.94

Windows Phone – 678,000 monthly

2m sessions daily

Average rating is 4.5 stars

2 developers + 2 QA

Experimental platform

Architecture, tools, patterns

Easily change anything

Don’t break things

Async/await

async/await is greatvar image = await new ImageDownloader().Download(LargeUrl); ImageSessionCacheService.Put(ImageCacheService.GetCacheKey(LargeUrl), image);

        

Every page is a function

Modal window serviceawait ModalWindowService.ShowAsync<UploadPhotoPage, List<Photo>>(params);

        

xaml

App.xaml<Application.Resources>

<ResourceDictionary><state:UserState x:Key="UserState" />

</ResourceDictionary></Application.Resources>

        

MenuText="{Binding Person.Name, Source={StaticResource UserState}}"

        

Behaviors<i:Interaction.Behaviors>

<behaviors:ManageImageBehavior IsBlured="True" Source="{Binding Url}" /></i:Interaction.Behaviors>

        

Triggers<ec:DataTrigger Binding="{Binding PromoBlockType, ElementName=UserControl}“ Value=“1”>

<ec:ChangePropertyAction PropertyName="Visibility" Value="Visible" /></ec:DataTrigger>

        

Styles<Style x:Key="PhotoPlaceholder“><Style x:Key="TopBarStyle“><Style x:Key="PopularityControlStyle“>

        

Content Templates<conditional:ConditionalControl>

<conditional:IfFeatureEnable FeatureType=“FEATURE"><DataTemplate>

<Button Width="328“></Button>

</DataTemplate></conditional:IfFeatureEnable>

</conditional:ConditionalControl>

        

Content Templates <conditional:ConditionalControl>

<conditional:IfAbTestVariation TestId=“1” VariationId=“2”><DataTemplate>

<Button Width="328“></Button>

</DataTemplate></conditional:IfAbTestVariation>

</conditional:ConditionalControl>

        

C# 6

Null-conditional operatorsIf (Object != null && Object.Field != null && Object.Field.Field != null && Object.Field.Field.Enabled){ Action();}

        

Null-conditional operatorsIf (Object?.Field?.Field?.Enabled == true){ Object.Field.Field.Action();}

        

NameofOnPropertyChanged(nameof(Property))

        

JiraTelerikFxCop

TeamCityStyleCop

ResharperVisual Studio 2015

We are hiring

7500£

Contacts

Timur GarifzyanovWindows Phone Team Leadt.garifzyanov@corp.badoo.com & garifzyanov@gmail.com & @garifzyanov_tim

Recommended