# Dev Notes ## Dev Notes - Building ```fsharp .\build NuGet .\build Test ``` ## Dev Notes - Releasing Use this: .\build NuGet set APIKEY=... .nuget\NuGet.exe push C:\GitHub\dsyme\Elmish.XamarinForms\build_output\Elmish.XamarinForms.*.nupkg %APIKEY% -Source https://www.nuget.org copy C:\GitHub\dsyme\Elmish.XamarinForms\build_output\Elmish.XamarinForms.*.nupkg %USERPROFILE%\Downloads ## Dev Notes - Checking App Size It is worth occasionally checking that unused code is trimmed from the Android and iOS app packagings by the Mono linker. There is [one known issue with this](https://github.com/fsprojects/Elmish.XamarinForms/issues/94). App size on Android is checked by 1. build + deploying `Samples\CounterApp` (to device or emulator) 2. renaming and unziping `Samples\CounterApp\Droid\bin\Release\com.companyname.CounterApp.apk` 3. checking sizes and contents of Samples\CounterApp\Droid\bin\Release\com.donsyme.AllControls\assemblies\FSharp.Core.dll Samples\CounterApp\Droid\bin\Release\com.donsyme.AllControls\assemblies\Elmish.XamarinForms.dll e.g. see [this comment](https://github.com/fsprojects/Elmish.XamarinForms/issues/94#issuecomment-402157490) Smallest app size is produced by * "Generate one package per ABI" * "Enable ProGuard" * "Linking: Sdk and User assemblies" * Disable debug instrumentation ![app size](https://user-images.githubusercontent.com/7204669/42222786-1096c20a-7ece-11e8-99d6-e1c63a6a2f30.png) Also check the app actually runs with these settings.