Swiftpack.co -  ZupIT/beagle as Swift Package
Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
A framework to help implement Server-Driven UI in your apps natively.
.package(url: "https://github.com/ZupIT/beagle.git", from: "1.7.0")


Beagle is released under the Apache 2.0 license. PRs welcome!

Getting Started ยท Learn the Basics ยท Contribute

Beagle is an open source framework for cross-platform development using the concept of Server-Driven UI.

This framework allow teams to build and alter layouts and data directly through a backend but yet displaying its contents natively in a mobile application and / or through web.

It is also possible to create, test and update native application components and screen paths without the need update the mobile application at the store (App Store or Play Store).


๐Ÿ“‹ Requirements

Beagle apps may target iOS 10.0 and Android 4.4 (API 19) or newer. You may use Windows, macOS, or Linux as your development operating system.

๐ŸŽ‰ Building your first app using Beagle

Follow the Getting Started guide. The recommended way to install Beagle depends on your project. Here you can find short guides for the most common scenarios:

๐Ÿ“– Documentation

The full documentation for Beagle can be found on our website.

The Beagle documentation discusses components, APIs, and topics that are specific to Beagle. Beagle documentation.

๐Ÿ‘ How to Contribute

The main purpose of this repository is to continue evolving Beagle core. We want to make contributing to this project as easy and transparent as possible, and we are grateful to the community for contributing bug fixes and improvements. Read below to learn how you can take part in improving Beagle.

Contributing Guide

Read our Contributing Guide to learn about our development process, how to propose bugfixes and improvements, and how to build and test your changes to Beagle.

Code of Conduct

Beagle has adopted a Code of Conduct that we expect project participants to adhere to. Please read the code so that you can understand what actions will and will not be tolerated.

Open Source Roadmap

You can learn more about our vision for beagle in the Roadmap.

Good First Issues

We have a list of good first issues that contain bugs which have a relatively limited scope. This is a great place to get started, gain experience, and get familiar with our contribution process.

๐Ÿ“„ License

Beagle is Apache 2.0 licensed, as found in the LICENSE file.


Stars: 483
Last commit: Yesterday

Ad: Job Offers

iOS Software Engineer @ Perry Street Software
Perry Street Software is Jackโ€™d and SCRUFF. We are two of the worldโ€™s largest gay, bi, trans and queer social dating apps on iOS and Android. Our brands reach more than 20 million members worldwide so members can connect, meet and express themselves on a platform that prioritizes privacy and security. We invest heavily into SwiftUI and using Swift Packages to modularize the codebase.


Related Packages

Release Notes

2 weeks ago

Release notes 1.7.0



  • action open external url (#1379)
  • create component to load screen. (#1377)
  • add screen request in flutter (#1392)
  • flutter action open native route (#1380)
  • deprecated field isLoggingEnabled in beagle sdk and BeagleDependencies (#1408)
  • create field enabled in text input and deprecated field disabled (#1407)
  • add support to add parameters in request to push view (#1411)
  • custom operations (#1412)
  • Adds BuildContext reference to ActionHandler (#1413)
  • Improve iOS test script setup step (#1429)
  • add to support to style id in Container (#1455)
  • add new Layout Widgets: Center, Column and Row. (#1457)
  • create a beagle flex view to others developers use (#1466)
  • add support to additional data on navigate action (#1424)
  • add methods observer and evaluate in bind (#1468)
  • Adds secret manager configuration (#1485)
  • added support to empty children to Beagle components (#1503)
  • added bindable fields to navigate methods (#1507)
  • Adds support to beagle gRPC library (#1497)
  • iOS - Add SPM support (#1484)

Bug fixes

  • iOS - SubmitForm validations (#1389)
  • make triggered scripts run on custom branch (#1394)
  • changed Android PageView component to suit BFF contract (#1420)
  • PageView retain cycle (#1434)
  • iOS - TextInput enabled custom style config (#1440)
  • iOS - ErrorView retry block (#1428)
  • adjust crash when passing color in page indicator (#1452)
  • adjust instance of text (#1456)
  • including missing files (#1476)
  • analytics test fix on Android (#1479)
  • analytics tests (#1481)
  • add conditional to dokka s3 upload steps (#1480)
  • image downloader test (#1483)
  • RecyclerView id access from ListView (#1489)
  • iOS - TextInput disabled without expression (#1486)
  • renderScreen replacement method (#1495)
  • micronaut starter stopped hanging when underlying client fails (#1502)
  • mantain the image aspect ratio (#1494)
  • iOS - Make children property optional (#1498)
  • support expression in actions OpenExternalURL, OpenNativeRoute, PopToView (#1505)
  • shouldPrefetch variable is nullable (#1510)
  • toolbar set title in beagle android (#1513)

Code refactoring

  • Refactored BeagleJSEngine and added unit tests (#1388)
  • move dependencies to service locator (#1395)
  • remove deprecated tests (#1417)
  • deprecated dsl in backend (#1431)
  • adjust body parameter http additional data in route remote (#1454)

Building system

  • Adds flutter tests (#1397)
  • update codeowners (#1435)
  • adjust error in horusec (#1441)
  • release 1.6.1 android into master (#1462)
  • update danger file (#1471)
  • Update CODEOWNERS (#1506)
  • iOS - Update dependencies in Podspec and Package.swift (#1511)


  • change button attribute to enabled (#1409)


  • generating kdocs and uploading them (#1391)

Other work

  • alert messages changed with onError and on success (#1384)
  • removing lazy component scenario (#1422)
  • fix page layout of listView tests (#1423)
  • tests removal (#1448)
  • make unowned references weak (#1443)
  • adding styleId on container (#1465)
  • impl (#1470)

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API