wf limitation app battery consuming

Why wf limitation was made?

As only one CIQ app can run in time and app can have over 1000kB why Garmin limit wf to about 100kB (not for all devices)?

Why there is limitation for access to some  SDK features (e.g. attention)?

I've written simple app which makes ... nothing  and after few tests I can see that it consumes about 5 times more energy than wf so it means that app can run about 1 day. So its' impossible write app like alarm or observer.

So to solve problems with energy and functionality the best solution is to

- allow wf to do the same thing like app

- allow app to choose low power mode, off screen etc

But maybe I don't know how to write such application. Simple, I want to write app which can do exactly the same what my wf do. Is any way to do it and both app and wf will consume the same energy?

  • As only one CIQ app can run in time and app can have over 1000kB why Garmin limit wf to about 100kB (not for all devices)?

    Well, you can view a CIQ watchface at the same time as a native activity is running (as long as you don't have too many CIQ data fields in that activity), so it's not exactly the same thing. Under no circumstances can you run a CIQ device app at the same time as a native activity. (For the purposes of this comment, I am ignoring background processes.)

    Besides, for non-music/non-maps devices the limit for apps is much lower (around 64 KB to 128 KB). And on non-music/non-maps devices, the limit for device apps is either exactly the same as the watchface limit, or slightly bigger.

    e.g. FR235 (old device which existed before any garmin watches had music or maps):
    - Device app limit: 65536
    - Watchface limit: 65536

    Fenix 6 (no music or maps)
    - Device app: 131072
    - Watchface: 114688

    Fenix 6 Pro (music and maps):
    - Device app: 1310720
    - Watchface: 114688

    I think you'll see similar patterns for any non-music devices vs music devices.

    So as I mentioned in another thread, if you start from the assumption that the non-music devices are the "normal" (baseline) devices, a lot of these things make more sense. IMO, the question isn't "why do device apps have so much more memory than watchfaces?", but "why do device apps on music watches have so much more memory than device apps on non-music watches?". Keep in mind that music/maps devices are relatively new, and Connect IQ existed for a few years before they even existed.

  • Inb4, "more memory equals greater battery consumption".

    My point is that the limits are as conservative as possible, especially looking from a historical CIQ pov.

    As far as I can tell, anyway.

  • hi,

    my point is (may be I'm wrong)

    the Watchface is supposed to be the "Screen Saver",

    if you allow it to do like an app, if not well coded, it will drain too much the battery.

    and as far as I know Garmin bet on device longevity.

    then a Watchface can run at the same time than an app (when long press on back button during activity)

  • 1. one ciq df an only factory wf can run, I was suprise it and even report error Slight smile

    Under no circumstances can you run a CIQ device app at the same time as a native activity

    what dose mean?

    2. for me id ciq app can handle 1MB why there is limit for ciq wf?onle becose of more memory more battery? So can I limit app memory to gain less battery consumption?

    3. It's hard to write good wf with such memory but I've done it and now it's the problem with consumption battery with using app. I don't use my app, even it's very usefull if I need to charge watch everyday especially that it run in night so I hade to charge it in day instead on wearing watch on writs.

  • Please decide because information form are conflicted according to:

    forums.garmin.com/.../1217105

    I'd like to write special observation application, user

    - go to app

    - set on observe for example HR, I need to check it every minutes, or set alarm I need to set timer for 8h

    - if something happens (HR is to high - yes there is such functionality on some devices, I don't know if for all) or its' time to alarm (yes I know there is system alarm but not enough for me) I'd like to show message, play sound vibrate etc

    Is it possible know (but remember about battery draining) and background is not acceptable (can be killed by system,  there is 5 minutes gap)

    then a Watchface can run at the same time than an app (when long press on back button during activity)

    1. When I back from activity and even wf is low power system calls onUpdate I know it from status on my wf

    A  - low power is on, onPartialUpdate should be call

    B - Activity is started

    C - text is scrolled - it means onUpdate is called

    so draining battery, if I press long back rather will be the same in case app. I'll test it but know I've overwrite this button and I have shortcut for long press in system - in activity short back is "lap" so you can to resign form lap if you want to back to wf during activity).

    2. Is any api function allows put app in background?

  • And the background for WFs and Widgets can run at the same time as a native activity, and that takes having some free memory (outside the WF/Widget)

    A WF generally runs in the processor's low power state, even when the WF is in it's own "high power" mode.

    The CIQ WF environment is really optimized as far as battery, as you typically won't run device apps 24/7.  Even having something like Attention, or connecting to GPS or sensors is not allowed in a watch face.  With attention, you might say it's minimal for an hourly chime, but a WF could do chimes every 5 minutes.

  • according to:

    https://developer.garmin.com/connect-iq/api-docs/Toybox/System/Intent.html

    For example, a widget might collect data from a service via a Communications call and pass that data to a device app via Intent for use during an activity.

    Is does mean that widget can run all the time even if it not visible?

    Can I write functionality as I describe up as a widget not as app?

  • (when long press on back button during activity)

    I've tested, there is no long press back "message", no key.getType()=PRESS_TYPE_ACTION for back,  system not supports it for app, activity is system app and I think it's support different

    simple back kills app when I enter again I'm on the "beginning", ok I can save data but I need run i background to "observe", now everything run well beside of battery draining in high power (app run like activity after it starts) - not acceptable for me 5% per hour

  • Yes, a widget can have a background service, just like a watch face.  But background services have limitations as watch faces do. (you can't record an activity for example)

  • Understand how delegates work and what the return value from something like onBack() indicates.