Quantcast
Jump to content

maljaros

No native Strava mobile app for Tizen OS smartphones

Recommended Posts

There is no native Strava mobile app for Tizen OS smartphones, so what app could be used for tracking trail run and cycling activities on a Samsung Z4? Or is there a "non-native" route to Strava itself?

Thank you, Maljaros

Share this post


Link to post
Share on other sites


Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Similar Topics

    • By ssb
      Hi.
      I'm working on some security concepts in tizen web applications. I studied "professional-tizen-application-development" book and I realized almost every thing about tizen web application is related to web runtime. but how exactly an application is launched???
      I installed tizen studio and in an emulator I opened up a shell. I also wanted to know is it possible to run an application in this shell??
       
    • By STF News
      We are pleased to announce the release of Tizen Studio version 4.1.
      This release includes new features to further improve the performance of the Tizen Studio IDE and its tools.
       
      Key features:
             • Tizen 5.5 platform emulators have been updated.
             • IoT Setup Manager has been updated.
      Deprecated:
             • Tizen RT IDE.
       
      For more information about the new features and bug fixes, see Release Notes.
      To download Tizen Studio, visit https://developer.tizen.org/development/tizen-studio/download.
      View the full article
    • By Lokman Çam
      i own a samsung tv Q7FN. Samsung tizen tv automatic update took place in early August. After the update, no ip tv application can open channels.
      Lists load smoothly, but no streaming. Neither TV channel nor movies can be started. Apps I've tried SS İP TV - OTT PLAYER - DUPLEX İP TV ...
      How can this problem be solved? Please help
    • By STF News
      This is the final blog in a series to introduce the sample application Workout, a Tizen example for monitoring health sensors on a wearable device.
      The first blog, Workout -- A Tizen Sample App for Monitoring Health Sensors, presented the basic features of the application. The second blog, Adding Distance Traveled to the Tizen Workout Sample App, described how distance traveled is calculated. The third blog, Adding Heart Rate Summary to the Tizen Workout App, demonstrated how heart rate data is gathered.
      This blog describes how the application uses the Tizen.Wearable.CircularUI extension of the Xamarin.Forms framework. This extension provides a set of components customized for the wearable profile that makes development easier and efficient. It provides, among others, a CircleListView component, which is used on the summary view of the application. The list contains elements that differ from each other in terms of appearance. Apart from the different contents of the text, they allow you to:
      Use different icon images Set different positions of text elements on selected elements Use converters for selected list items Display the action button on selected elements of the list
      Time
      Distance
      Pace
      Intensity ItemSource
      The information about how the individual elements of the list should look like is provided by ItemSource, which is represented by the list of elements of the DetailsItemData class.
      Views/Workout/DetailsPageView.xaml
      <cui:CircleListView.ItemsSource> <x:Array Type="{x:Type models:DetailsItemData}"> <models:DetailsItemData Name="time" Value="{Binding ElapsedTime}" Icon="images/details_time_icon.png"> <models:DetailsItemData.ValueBounds> <Rectangle X=".5" Y="193" Width="-1" Height="-1" /> </models:DetailsItemData.ValueBounds> <models:DetailsItemData.NameBounds> <Rectangle X=".5" Y="245" Width="-1" Height="-1" /> </models:DetailsItemData.NameBounds> </models:DetailsItemData> <models:DetailsItemData Name="distance" Value="{Binding Distance}" Icon="images/details_distance_icon.png"> <models:DetailsItemData.ValueBounds> <Rectangle X=".5" Y="193" Width="-1" Height="-1" /> </models:DetailsItemData.ValueBounds> <models:DetailsItemData.NameBounds> <Rectangle X=".5" Y="245" Width="-1" Height="-1" /> </models:DetailsItemData.NameBounds> </models:DetailsItemData> <models:DetailsItemData Name="average pace" Value="{Binding AveragePace}" Icon="images/details_average_pace_icon.png"> <models:DetailsItemData.ValueBounds> <Rectangle X=".5" Y="193" Width="-1" Height="-1" /> </models:DetailsItemData.ValueBounds> <models:DetailsItemData.NameBounds> <Rectangle X=".5" Y="245" Width="-1" Height="-1" /> </models:DetailsItemData.NameBounds> </models:DetailsItemData> <models:DetailsItemData Name="intensity" Value="{Binding Intensity, Converter={StaticResource BpmRangeValueConverter}}" Icon="images/details_intensity_icon.png" IsActionButtonVisible="True"> <models:DetailsItemData.ValueBounds> <Rectangle X=".5" Y="172" Width="-1" Height="-1" /> </models:DetailsItemData.ValueBounds> <models:DetailsItemData.NameBounds> <Rectangle X=".5" Y="224" Width="-1" Height="-1" /> </models:DetailsItemData.NameBounds> </models:DetailsItemData> </x:Array> </cui:CircleListView.ItemsSource> Models/Workout/DetailsItemData.cs
      using Xamarin.Forms; namespace Workout.Models.Workout { /// <summary> /// Details item data class. /// Used as one element of the details page list. /// </summary> public class DetailsItemData : BindableObject { #region properties public static readonly BindableProperty ValueProperty = BindableProperty.Create("Value", typeof(string), typeof(DetailsItemData), default(string)); /// <summary> /// Workout detail name. /// </summary> public string Name { get; set; } /// <summary> /// Workout detail value. /// </summary> public string Value { get => (string)GetValue(ValueProperty); set => SetValue(ValueProperty, value); } /// <summary> /// Workout detail icon. /// </summary> public string Icon { get; set; } /// <summary> /// Item layout value bounds. /// </summary> public Rectangle ValueBounds { get; set; } /// <summary> /// Item layout name bounds. /// </summary> public Rectangle NameBounds { get; set; } /// <summary> /// Workout detail action button visibility flag. /// </summary> public bool IsActionButtonVisible { get; set; } #endregion } } ItemTemplate
      The values provided by ItemSource are used in ItemTemplate.
      Views/Workout/DetailsPageView.xaml
      <cui:CircleListView.ItemTemplate> <DataTemplate> <ViewCell> <AbsoluteLayout HeightRequest="360" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand"> <Image AbsoluteLayout.LayoutFlags="XProportional" AbsoluteLayout.LayoutBounds=".5, 74, AutoSize, AutoSize"> <Image.Source> <FileImageSource File="{Binding Icon}" /> </Image.Source> </Image> <Label Text="{Binding Value}" FontSize="{StaticResource FontSizeM}" TextColor="#FFF" AbsoluteLayout.LayoutFlags="XProportional" AbsoluteLayout.LayoutBounds="{Binding ValueBounds}"> </Label> <Label Text="{Binding Name}" FontSize="{StaticResource FontSizeXXS}" FontAttributes="Bold" TextColor="#AAFFCC" AbsoluteLayout.LayoutFlags="XProportional" AbsoluteLayout.LayoutBounds="{Binding NameBounds}"> </Label> <Button AbsoluteLayout.LayoutFlags="All" AbsoluteLayout.LayoutBounds="0, 1, 1, .25" Text="OK" TextColor="#1B1B7D" BackgroundColor="#AAFFCC" Command="{Binding BindingContext.FinishCommand, Source={x:Reference listView}}" IsVisible="{Binding IsActionButtonVisible}" tizen:VisualElement.Style="bottom" /> </AbsoluteLayout> </ViewCell> </DataTemplate> </cui:CircleListView.ItemTemplate> The values modify the content in each ViewCell element accordingly, so that:
      The Name and Value properties set the values of the Text property of the selected Label elements The NameBounds and ValueBounds properties set the LayoutBounds property of absolutely positioned Label elements The Icon property sets the Source property of the Image elements responsible for displaying the item icon The IsActionButtonVisible property sets the IsVisible property of Button elements, making them visible when the given value is True Read More
      To learn more about the implementation of CircleListView in the Workout application, please see this tutorial.
      Thank you for reading the tutorials about the Workout app. For more information about this app and developing for the Tizen platform, please visit developer.tizen.org.
      View the full blog at its source
    • By STF News
      This is the third blog in a series to introduce the sample application Workout, a Tizen example for monitoring health sensors on a wearable device.
      The first blog, Workout -- A Tizen Sample App for Monitoring Health Sensors, presented the basic features of the application. The second blog, Adding Distance Traveled to the Tizen Workout Sample App, described how distance traveled is calculated.
      In this blog, I will demonstrate another key feature of the app, Heart Rate Measurement (HRM), which shows the most recent heart rate intensity.

      Implementation
      To start collecting data from the HRM sensor, first start Tizen.Sensor.HeartRateMonitor from TizenFX API.
      HeartRateMonitorService.cs
      public void Init() { try { _hrm = new HRM { Interval = 1000, PausePolicy = SensorPausePolicy.None }; _hrm.DataUpdated += OnDataUpdated; } catch (Exception) { NotSupported?.Invoke(this, EventArgs.Empty); } } Initiating HRM in this way invokes DataUpdated every one second and the sensor is not stopped even when the application is sent to the background. The data from the event is handled by the OnDataUpdated handler, which invokes the event with the single bpm value.
      This event is listened to by the OnServiceDataUpdated handler in the HeartRateMonitorModel, where all information related to heart rate is calculated:
      HeartRateMonitorModel.cs
      private void OnServiceDataUpdated(object sender, int bpm) { double normalizedBpm = Math.Clamp((bpm - _minBpm) / (double)(_maxBpm - _minBpm), 0, 1); int bpmRange = bpm < _minBpm ? 0 : Math.Min((int)((normalizedBpm * (_bpmRanges - 1)) + 1), _bpmRanges - 1); if (!_isMeasurementPaused) { _bpmRangeOccurrences[bpmRange]++; } Updated?.Invoke(this, new HeartRateMonitorUpdatedEventArgs(new HeartRateMonitorData { Bpm = bpm, BpmRange = bpmRange, BpmRangeOccurrences = _bpmRangeOccurrences, NormalizedBpm = normalizedBpm })); } However, let's start with the values that are used in the above method:
      _maxBpm - this value is calculated during the class instantiation according to the formula: 220 - user age
      _minBpm - this is half the value of _maxBpm
      _minBpm and _maxBpm is used to calculate normalizedBpm, a value ranging from 0 to 1.
      Next, the bpmRange to which the current HRM service value belongs is calculated: For bpm below _minBpm, bpmRange is set to 0. For bpm greater than or equal to _minBpm, bpmRange is set to either (_normalizedBpm * (_bpmRanges -1) + 1) or (_bpmRanges - 1), whichever value is smaller.
      This calculated pulse interval is used as a position in an array, whose value is increased by 1. To obtain the most common pulse interval, find the index with the highest value associated with it.
      DetailsPageViewModel.cs
      Intensity = Array.LastIndexOf(bpmRangeOccurrences, bpmRangeOccurrences.Max()).ToString(); To display the range indication, Intensity is delivered to XAML and converted into text using a converter.
      DetailsPageView.xaml.cs
      <models:DetailsItemData Name="intensity" Value="{Binding Intensity, Converter={StaticResource BpmRangeValueConverter}}" Icon="images/details_intensity_icon.png" IsActionButtonVisible="True"> Read more
      To learn more about the implementation of the HRM sensor and the use of the data in the Workout app, see this tutorial
      In the final blog of this series, you'll learn how CircleListView is used in the app.
      View the full blog at its source
×
×
  • Create New...