Zebble
  • About Zebble
  • Compare
  • Documentation
  • Themes
  • Plug-ins
  • Contact Us

    • What is Zebble?
    • Structure of a Zebble solution
    • Zebble Designer (UWP)
    • Installing - Introduction
    • Change log
    • Introduction
    • ViewModel development
    • VM.EXE
    • View development
    • Dialogs
    • Lists and Collections
    • Tips and shortcuts
    • List views
    • ViewModel testing
    • Automatic Views
    • View development process
    • Hello World - Core Concepts
    • Layout: Sizing & Positioning
    • Event handling
    • Navigation
    • Alerts, Dialog, Prompt and toast
    • View lifecycle
    • Managing Files & Resources
    • Config & Debugging
    • Forms
    • Page templates
    • Device API
    • Animations
    • Web Api - Part 1 (reading data)
    • Web Api - Part 2 (post and delete)
    • Web Api - Part 3 (server vs client domain model)
    • Gesture events
    • View class
    • Zebble Markup (.zbl files)
    • Data Binding and MVVM
    • Stack class
    • Sizing and positioning
    • Layout examples
    • ScrollView class
    • Page class
    • Styling in Zebble
    • CSS property mapping to Zebble
    • Supported selectors
    • Zebble CSS: Under the hood
    • Inline styling
    • CSS real-time updates
    • Dynamic expressions in CSS
    • Gradient background colours
    • CSS Pseudo-classes support
    • Using Bold and Light Fonts in Zebble
    • Rotation in Zebble
    • Using custom fonts in Zebble
    • Flashing on tap using AutoFlash
    • Button
    • Carousel class
    • Checkbox class
    • DatePicker
    • Drawing class
    • FilePicker class
    • Grid class
    • IconButton class
    • ImageView
    • ItemPicker class
    • ListView & Grid classes
    • OptionsList
    • SearchInput class
    • Slider class
    • Switch class
    • Tabs Class
    • TextInput class
    • TextView
    • TimePicker
    • TreeView
    • Waiting Indicator
    • WebView class (displaying html)
    • C# Methods and Properties Of UI Components
    • Nav.Forward() vs Nav.Go()
    • Passing parameters to the destination page
    • Going Back
    • Showing Popup pages
    • Waiting class
    • Hardware Back button (e.g. Android)
    • NavigationBar class
    • Tabs class
    • Caching (pages)
    • Navigation without event handler
    • Use the Windows version
    • Logging messages for Debugging
    • Debugging Zebble/Plugin
    • Exception handling in Zebble
    • Debugging layout and styles
    • Zebble Device API
    • Device.Screen and orientation (landscape | portrait)
    • Code that should run on a specific platform
    • Using Lamp (aka Flash, LED and Torch)
    • Using Compass (Smooth compass)
    • Using Accelerometer (device angle)
    • Using Gyroscope (device motion speed)
    • How to Vibrate the device?
    • Launching the device browser
    • Finding device model and manufacturer
    • Responding to System events
    • Handling device shake event
    • Permissions
    • Permissions declaration (manifest files)
    • Sharing
    • Prompt for rating the app
    • Finding if Internet connection is available
    • Device messaging (Make a phone call, send SMS or Email)
    • Showing a local notification
    • Copying to Clipboard
    • Accessing device contacts
    • Reading and writing into Gallery (albums)
    • Playing & Recording Audio
    • Cache and temp files and folders
    • C# async / await
    • Understanding Zebble Threading
    • Debugging - the StackTrace problem
    • Not awaiting (running in parallel)
    • Timer (interval / scheduled running)
    • Post-render changes to the UI (dynamic)
    • Introduction of Geo location
    • Map & Location Services
    • Launch directions to a location (external)
    • Getting current Location
    • Tracking user location
    • Device.Media: Taking and picking photos
    • Playing an audio file
    • VideoPlayer class
    • Augmented reality
    • Recording audio
    • Virtual Reality
    • Speech Recognition
    • Recording or picking video
    • Playing remote videos in iOS
    • Text to speech
    • Introduction to the importance of Mobile Testing
    • Why and what to test
    • Testing mobile apps on different devices
    • Testing mobile apps
    • Xamarin Profiler
    • Performance optimization
    • Moving a view to another container at run-time
    • Attaching custom data (tag) to objects
    • Saving a view as image
    • Naming best practices
    • Fastest way to update your nuget package
    • Tips for Clean and Brief code
    • Splash screen and icon generation
    • Advice for passing Approval
    • Options for iOS app distribution
    • Test Release (internal and UAT)
    • Application Icons in IOS
    • Submitting to App Store
    • Releasing to App Store
    • Crash reporting
    • Optimized Release Build
    • Android - Generating an APK for manual installation
    • Payment (subscriptions & in-app purchases)
    • Introduction to push notifications
    • Registration process (App)
    • Push notification setup - iOS
    • Push notification setup - Android
    • Push notification setup - Windows
    • Sending a push message from the web app
    • Introduction
    • Connecting Zebble to Web API
    • Installation
    • Creating an API class
    • GET APIs
    • Calling a GET API (in the mobile app)
    • POST, PUT, PATCH and DELETE APIs
    • Domain Model
    • Web API and Authentication
    • Versioning
    • Uniquely identifying installations (token)
    • Settings file: config.xml
    • Standard Zebble settings
    • Login/Register with Facebook
    • Creating a composite component / plugin
    • Creating a Zebble component using Html and Javascript
    • CustomRenderedView: Third-party native components / plugins
    • Mapbox
    • Naming considerations
    • Random problems?
    • Display Keyboard for Visual Studio Android Emulator
    • iOS goes mad?
    • Configuring a Windows phone for ad-hoc testing
    • Fixing Error DEP0001 : Unexpected Error: -2147009287 while deploying Windows UWP app on device
    • Fixing Error DEP0001 : Unexpected Error: -1988945906 while deploying Windows UWP app on device
    • Unable tp Connect to the Mac agent from Visual Studio
    • Can't connect to the Mac agent from Visual Studio?
    • Choosing the CPU architecture
    • Zebble CLI
    • How to add a Device API to Zebble source?
    • About Automated UI testing
    • What should we test in mobile applications?
    • Creating an Automated UI Test in Zebble



Standard Zebble settings


Database settings

The following setting determines if the objects loaded from the local database should be cached in memory (for performance) or not:

<Database.Cache.Enabled value="true" />The following settings determines the name of the SQLite database file used by the app.

<Database.File value="app.db3" />

Dev & Debugging

During development in a Windows (desktop) you can set Dev.Mode to true. It will allow you to "Ctrl + Click" on objects on the screen to launch the inspector. It will add additional run-time checks to help with problem diagnosis. 

<Dev.Mode value="true" />

Multi-threaded debugging

When you run into an exception it may not give you the full stack trace due to multi-threding issues (learn more). If you set this flag to true then UIRuntime.StackTrace will give you the full picture.

<MultiThread.Debugging value="false" />

Performance profiling

If you want to profile your application for performance improvements it's important to remove any noise from background work. The reason is that such processes will impact the profilers' results, while they don't impact the real user's experience. One of the standard background processes in Zebble is Disposing the pages which are no longer reachable. That happens in the background, but it can massively impact your performance profiling data.

To isolate the performance data to only the page rendering and the standard flow, you can temporarily disable the background Disposing actions by setting the following config value to true. In addition you need to turn off the noise from the Zebble Inspector by setting DevMode to false..

<Profiling.Performance value="true" />
<Dev.Mode value="false" />
Disabling view caching

If you want to disable page caching you can add teh following setting which will result in all [CacheView] attributes being ignored. As a result when navigating to a page it will never be added to the navigation cache. So it will be recreated when you go there.

<Disable.View.Caching value="true" />

Styling & CSS

During development (Windows), you can uncomment the following line, in order to simulate another platform for use in the CSS engine for quicker testing.

<Dev.Css.Platform value="Android" />

The following determines whether the flash() method should be automatically invoked for Button and IconButton views before their tap event handler code is executed

<Button.Tap.AutoFlash value="true" />

Push notification

If you need the app to support receiving push notifications even when it's not running actively, then set the following to true:

<Push.Notification.Background.Enabled value="false" />Also when you register your app with Google Play Services for Push Notifications, add the Sender ID. Learn why.

<Push.Notification.Android.Sender.ID value="..." />

Shaking gesture

If you want your app to respond to the user shaking the phone, then you need to set the following:

<Device.System.DetectShaking value="true" />

Web API

To specify the base URL for your server application's Web Api used by the mobile app, use:

<Api.Base.Url value="https://123.123.123.123:7890" />

Application Rating

If you want to launch the App Store rating application directly from your app you should set the following:

<Application.Apple.ID  value="1166606853" />
<Application.Android.ID value="my.application" />
<Application.Windows.ID value="com.my-website.MyApplication" />

Android specific

When the user is looking at a page while there is no previous page in the navigation stack, if she then presses the back button nothing will happen. In that scenario, if you want the application to be minimised to show the Android home page, then you can achieve that behaviour by setting the following.

<Android.Hardware.Back.Can.Close value="true" />




‹
Zebble is a product of Geeks Ltd , a software house based in London, UK. All rights are reserved.

Telephone: +44 (0)845 643 6229

Email: hello@zebble.net

Address: 66a London Road, Morden

Greater London, United Kingdom, SM4 5BE

Privacy Statement
Terms & Conditions
Contact Us