diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f977150..0d21c3d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,7 +14,7 @@ jobs: steps: - name: Checkout pebble-firmware - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: repository: pebble-dev/pebble-firmware ref: main @@ -27,7 +27,7 @@ jobs: - name: Build aplite SDK run: | - ./waf configure --board bb2 --nojs + ./waf configure --board bb2 --js-engine none ./waf build --onlysdk - name: Build basalt SDK @@ -40,7 +40,7 @@ jobs: ./waf docs_sdk - name: Publish docs artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: docs-c path: | @@ -53,7 +53,7 @@ jobs: steps: - name: Checkout pebble-android-sdk - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: repository: pebble-dev/pebble-android-sdk @@ -63,7 +63,7 @@ jobs: ./gradlew releaseJavadoc - name: Publish docs artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: docs-android path: PebbleKit/PebbleKit/build/docs/javadoc @@ -74,12 +74,12 @@ jobs: steps: - name: Checkout pebble-ios-sdk - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: repository: pebble/pebble-ios-sdk - name: Publish docs artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: docs-ios path: PebbleKit-iOS.docset/Contents/Resources/Documents @@ -93,10 +93,10 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Download docs artifacts - uses: actions/download-artifact@v5 + uses: actions/download-artifact@v6 with: pattern: docs-* path: /tmp/docs diff --git a/.github/workflows/gitlint.yaml b/.github/workflows/gitlint.yaml index 3606422..7daa985 100644 --- a/.github/workflows/gitlint.yaml +++ b/.github/workflows/gitlint.yaml @@ -8,7 +8,7 @@ jobs: runs-on: ubuntu-24.04 steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: ref: ${{ github.event.pull_request.head.sha }} fetch-depth: 0 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index dd5c293..58abb4c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -10,7 +10,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Setup Ruby uses: ruby/setup-ruby@v1 @@ -23,7 +23,7 @@ jobs: SKIP_DOCS: true # TODO: remove once we can get docs artifacts in here easily - name: Upload report artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 if: always() with: name: test-report diff --git a/source/_data/faqs.json b/source/_data/faqs.json index c93ebf7..3ad3efd 100644 --- a/source/_data/faqs.json +++ b/source/_data/faqs.json @@ -3,8 +3,8 @@ "title": "Pebble SDK", "questions": [ { - "question": "What are the Aplite, Basalt, and Chalk platforms?", - "answer": "These are the platform names we use to describe our different generations of watches. Aplite refers to the original Pebble and Pebble Steel. Basalt refers to Pebble Time. Chalk refers to Pebble Time Round." + "question": "What are the Aplite, Basalt, Chalk, Diorite, Emery and Flint platforms?", + "answer": "These are the platform names used to describe different generations of watches. For example, Aplite refers to the original Pebble and Pebble Steel. You can find a full list, as well as information about the capabilities of each platform, on the [Hardware Information page](/guides/tools-and-resources/hardware-information)" }, { "question": "I cannot find the \"Developer Mode\" or \"Developer Connection\" toggle in the iOS or Android application", @@ -58,38 +58,6 @@ } ] }, - { - "title": "App Publishing", - "questions": [ - { - "question": "My companion app got rejected", - "answer": "It probably hasn't been accepted yet. You will get a confirmation email from pebbledev after it has been submitted to Apple. After this, it will be 2-3 days for it to be officially in the MFi program." - } - ], - "hidden-questions": [ - { - "question": "When is JS bundling?", - "answer": "Check tweets from @pebbledev and the bundling [forum thread](https://forums.getpebble.com/discussion/12451/pebble-js-bundling-updates)" - }, - { - "question": "Why does this app say 'coming soon'?", - "answer": "See 'When is JS bundling?'" - }, - { - "question": "I don't want this app to show 'coming soon'", - "answer": "Publish the release, but don't press 'Make Public'. The JS will still be included in the next bundling. Once it has been bundled, make it public." - } - ] - }, - { - "title": "Hardware Issues", - "questions": [ - { - "question": "My screen is artifacting/flashing/ customer support issues", - "answer": "Contact [support@getpebble.com](mailto:support@getpebble.com) for RMA issues." - } - ] - }, { "title": "Pebble SDK 1.x Migration", "questions": [ @@ -99,4 +67,4 @@ } ] } -] \ No newline at end of file +] diff --git a/source/_data/redirects.yaml b/source/_data/redirects.yaml index 5887b95..6f9d56a 100644 --- a/source/_data/redirects.yaml +++ b/source/_data/redirects.yaml @@ -2751,3 +2751,15 @@ - - /guides/pebble-imeline/pin-structure - /guides/pebble-timeline/pin-structure/ +- + - /sdk/download/ + - /sdk +- + - /sdk/install/mac/ + - /sdk/#macos +- + - /sdk/install/linux/ + - /sdk/#ubuntu +- + - /sdk/install/windows/ + - /sdk/#windows diff --git a/source/_guides/app-resources/images.md b/source/_guides/app-resources/images.md index 25f7ee9..f26d06f 100644 --- a/source/_guides/app-resources/images.md +++ b/source/_guides/app-resources/images.md @@ -38,6 +38,9 @@ shown below: | Aplite | 2 (black and white) | | Basalt | 64 colors | | Chalk | 64 colors | +| Diorite | 2 (black and white) | +| Emery | 64 colors | +| Flint | 2 (black and white) | ## Color Palettes @@ -47,6 +50,9 @@ are available below. Use these when creating color image resources: * [Photoshop `.act`](/assets/other/pebble_colors_64.act) +* [Aseprite (raw colors, for watch displays) `.aseprite`](/assets/other/pebble_colors_uncorrected.aseprite) +* [Aseprite (Sunlight, color-corrected for HD displays) `.aseprite`](/assets/other/pebble_colors_sunlight.aseprite) + * [Illustrator `.ai`](/assets/other/pebble_colors_64.ai) * [GIMP `.pal`](/assets/other/pebble_colors_64.pal) diff --git a/source/_guides/app-resources/platform-specific.md b/source/_guides/app-resources/platform-specific.md index c037aa5..ab9e01e 100644 --- a/source/_guides/app-resources/platform-specific.md +++ b/source/_guides/app-resources/platform-specific.md @@ -28,18 +28,18 @@ platform. The follows tags exist for each platform: -| Aplite | Basalt | Chalk | Diorite | Emery | Flint | -|---------|------------|------------|---------|------------|--------| -| rect | rect | round | rect | rect | rect | -| bw | color | color | bw | color | bw | -| aplite | basalt | chalk | diroite | emery | flint | -| 144w | 144w | 180w | 144w | 200w | 144w | -| 168h | 168h | 180h | 168h | 228h | 168h | +| Aplite | Basalt | Chalk | Diorite | Emery | Flint | +|---------|------------|------------|---------|------------|---------| +| rect | rect | round | rect | rect | rect | +| bw | color | color | bw | color | bw | +| aplite | basalt | chalk | diorite | emery | flint | +| 144w | 144w | 180w | 144w | 200w | 144w | +| 168h | 168h | 180h | 168h | 228h | 168h | | compass | compass | compass | | compass | compass | -| | mic | mic | mic | mic | mic | -| | strap | strap | strap | strap | strap | -| | strappower | strappower | | | | -| | health | health | health | health | health | +| | mic | mic | mic | mic | mic | +| | strap | strap | strap | strap | | +| | strappower | strappower | | strappower | | +| | health | health | health | health | health | To tag a resource, add the tags after the file's using tildes (`~`) — for diff --git a/source/_guides/best-practices/building-for-every-pebble.md b/source/_guides/best-practices/building-for-every-pebble.md index 788e441..9d995a6 100644 --- a/source/_guides/best-practices/building-for-every-pebble.md +++ b/source/_guides/best-practices/building-for-every-pebble.md @@ -22,8 +22,8 @@ order: 0 The difference in capabilities between the various Pebble hardware platforms are listed in {% guide_link tools-and-resources/hardware-information %}. For example, the -Basalt, Chalk and Emery platforms support 64 colors, whereas the Aplite and -Diorite platforms only support two colors. This can make developing apps with +Basalt, Chalk and Emery platforms support 64 colors, whereas the Aplite, Diorite +and Flint platforms only support two colors. This can make developing apps with rich color layouts difficult when considering compatibility with other non-color hardware. Another example is using platform specific APIs such as Health or Dictation. @@ -101,6 +101,7 @@ better used to select an entire block of code. | `PBL_PLATFORM_CHALK` | None | Built for Pebble Time Round. | | `PBL_PLATFORM_DIORITE` | None | Built for Pebble 2. | | `PBL_PLATFORM_EMERY` | None | Built for Pebble Time 2. | +| `PBL_PLATFORM_FLINT` | None | Built for Pebble 2 Duo. | | `PBL_SDK_2` | None | Compiling with SDK 2.x (deprecated). | | `PBL_SDK_3` | None | Compiling with SDK 3.x. or 4.x. | @@ -135,7 +136,7 @@ static void window_load(Window *window) { ``` The hardcoded width and height of this layer will cover the entire screen on -Aplite, Basalt and Diorite, but not on Chalk or Emery. This kind of screen +Aplite, Basalt, Diorite and Flint, but not on Chalk or Emery. This kind of screen size-dependant calculation should use the ``UnobstructedArea`` bounds of the ``Window`` itself: @@ -323,7 +324,7 @@ With the availability of color support on Basalt, Chalk and Emery, developers may wish to include color versions of resources that had previously been pre-processed for Pebble's black and white display. Including both versions of the resource is expensive from a resource storage perspective, and lays the -burden of packing redundant color resources in an Aplite or Diorite app when +burden of packing redundant color resources in an Aplite, Diorite or Flint app when built for multiple platforms. To solve this problem, the Pebble SDK allows developers to specify which version diff --git a/source/_guides/events-and-services/dictation.md b/source/_guides/events-and-services/dictation.md index f01d2ec..e8ac205 100644 --- a/source/_guides/events-and-services/dictation.md +++ b/source/_guides/events-and-services/dictation.md @@ -23,6 +23,7 @@ platforms: - chalk - diorite - emery + - flint related_docs: - Dictation related_examples: diff --git a/source/_guides/events-and-services/health.md b/source/_guides/events-and-services/health.md index b20b637..da089cc 100644 --- a/source/_guides/events-and-services/health.md +++ b/source/_guides/events-and-services/health.md @@ -24,6 +24,7 @@ platforms: - chalk - diorite - emery + - flint related_docs: - HealthService related_examples: diff --git a/source/_guides/graphics-and-animations/animations.md b/source/_guides/graphics-and-animations/animations.md index ecbb446..3687363 100644 --- a/source/_guides/graphics-and-animations/animations.md +++ b/source/_guides/graphics-and-animations/animations.md @@ -175,6 +175,13 @@ static void implementation_update(Animation *animation, static void implementation_teardown(Animation *animation) { APP_LOG(APP_LOG_LEVEL_INFO, "Animation finished!"); } + +// This needs to exist while the event loop runs +static const AnimationImplementation s_implementation = { + .setup = implementation_setup, + .update = implementation_update, + .teardown = implementation_teardown +}; ``` Once these are in place, create a new ``Animation`` , specifying the new custom @@ -187,12 +194,7 @@ animation_set_delay(animation, 1000); animation_set_duration(animation, 1000); // Create the AnimationImplementation -const AnimationImplementation implementation = { - .setup = implementation_setup, - .update = implementation_update, - .teardown = implementation_teardown -}; -animation_set_implementation(animation, &implementation); +animation_set_implementation(animation, &s_implementation); // Play the Animation animation_schedule(animation); diff --git a/source/_guides/tools-and-resources/hardware-information.md b/source/_guides/tools-and-resources/hardware-information.md index 5d038e0..c645bed 100644 --- a/source/_guides/tools-and-resources/hardware-information.md +++ b/source/_guides/tools-and-resources/hardware-information.md @@ -31,7 +31,4 @@ The table below details the differences between hardware platforms: See {% guide_link best-practices/building-for-every-pebble#available-defines-and-macros "Available Defines and Macros" %} -for a complete list of compile-time defines available. - -**NOTE:** We'll be updating the "Building for Every Pebble Guide" and "Available -Defines and Macros" list when we release the first preview version of SDK 4.0. +for a complete list of compile-time defines available. \ No newline at end of file diff --git a/source/_guides/user-interfaces/content-size.md b/source/_guides/user-interfaces/content-size.md index 8853ad6..ecfe5ad 100644 --- a/source/_guides/user-interfaces/content-size.md +++ b/source/_guides/user-interfaces/content-size.md @@ -68,7 +68,7 @@ and `ContentSize`: Platform | Text Size: Small | Text Size: Medium | Text Size: Large ---------|------------------|-------------------|----------------- -Aplite, Basalt, Chalk, Diorite | ContentSize: Small | ContentSize: Medium | ContentSize: Large +Aplite, Basalt, Chalk, Diorite, Flint | ContentSize: Small | ContentSize: Medium | ContentSize: Large Emery | ContentSize: Medium | ContentSize: Large | ContentSize: Extra Large > *At present the Text Size setting only affects notifications and some system diff --git a/source/_includes/blog/newsletter.html b/source/_includes/blog/newsletter.html deleted file mode 100644 index f86b555..0000000 --- a/source/_includes/blog/newsletter.html +++ /dev/null @@ -1,32 +0,0 @@ -{% comment %} -Copyright 2025 Google LLC - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -{% endcomment %} - -
*3Rated waterproofing is applicable to new, sealed hardware. Age or repairs may compromise water resistance.
+*4Rated battery life is applicable to new hardware in typical usage conditions. Heavy use or use of power intensive apps and watchfaces may lead to a lower battery life. Battery life will reduce as the watch ages. Aftermarket replacement batteries may have a lower capacity.
+ diff --git a/source/_layouts/blog/master.html b/source/_layouts/blog/master.html index 8295de7..7b88383 100644 --- a/source/_layouts/blog/master.html +++ b/source/_layouts/blog/master.html @@ -16,6 +16,8 @@ layout: default menu_section: blog +menu_section_color: '#e27c3f' +menu_section_icon: /images/menu/blog.png ---