Improve README (#673)

This commit is contained in:
Bart Louwers
2023-01-12 00:42:09 +00:00
committed by GitHub
parent 2c59a4a252
commit 39df4fc2f6
14 changed files with 411 additions and 487 deletions

View File

@@ -1,23 +0,0 @@
# Contributing - MapLibre GL Native for Android
## Kotlin
All new code should be written in [Kotlin](https://kotlinlang.org/).
### Style Checking
To check Kotlin style, we use [ktlint](https://pinterest.github.io/ktlint/). This linter is based on the [official Kotlin coding conventions](https://kotlinlang.org/docs/coding-conventions.html). We intergrate with it using the [kotlinder](https://github.com/jeremymailen/kotlinter-gradle) Gradle plugin.
To check the style of all Kotlin source files, use:
```
$ ./gradlew checkStyle
```
To format all Kotlin source files, use:
```
$ ./gradlew formatKotlin
```
You might find it helpful to install the [Ktlint](https://plugins.jetbrains.com/plugin/15057-ktlint-unofficial-) Android Studio plugin.

View File

@@ -0,0 +1,137 @@
# Developing - MapLibre GL Native for Android
These instructions are for developers interested in making code-level contributions to the SDK itself.
## Kotlin
All new code should be written in [Kotlin](https://kotlinlang.org/).
### Style Checking
To check Kotlin style, we use [ktlint](https://pinterest.github.io/ktlint/). This linter is based on the [official Kotlin coding conventions](https://kotlinlang.org/docs/coding-conventions.html). We intergrate with it using the [kotlinder](https://github.com/jeremymailen/kotlinter-gradle) Gradle plugin.
To check the style of all Kotlin source files, use:
```
$ ./gradlew checkStyle
```
To format all Kotlin source files, use:
```
$ ./gradlew formatKotlin
```
## Getting the source
Clone the git repository and pull in submodules:
```bash
git clone git@github.com:maplibre/maplibre-gl-native.git
git submodule update --init --recursive
cd platform/android
```
## Installing dependencies
These dependencies are required for all operating systems and all platform targets.
- Latest stable [Android Studio](https://developer.android.com/studio/index.html)
- Update the Mapbox Maps SDK for Android with the latest
- Android SDK Build-Tools
- Android Platform-Tools
- Android SDK Tools
- CMake
- NDK
- LLDB
- Modern C++ compiler that supports `-std=c++14`\*
- clang++ 3.5 or later or
- g++-4.9 or later
- [Node.js](https://nodejs.org/)
- make sure [npm](https://www.npmjs.com) is installed as well
- [ccache](https://ccache.samba.org/) (optional)
**Note**: We partially support C++14 because GCC 4.9 does not fully implement the
final draft of the C++14 standard. More information in [DEVELOPING.md](../../DEVELOPING.md).
**Note**: On macOS you can install clang with installing the [Apple command line developer tools](https://developer.apple.com/download/).
## Opening the project
### macOS
* Environment: Android Studio + NDK
* `JAVA_HOME=/Applications/Android Studio.app/Contents/jre/Contents/Home`
* `ANDROID_SDK_ROOT=~/Library/Android/sdk`
* See NDK version discussion on issue: [maplibre/maplibre-gl-native/#xxx](https://github.com/maplibre/maplibre-gl-native/issues/xxx)
```
cd platform/android
# generate the required build files and open the project with Android Studio
make aproj
# Build package
BUILDTYPE=Debug make apackage
# BUILDTYPE=Release make apackage
# Build release Test App
make android
# Generate javadoc
make android-javadoc
```
### Linux
run `make android-configuration` in the root folder of the project and open in Android Studio.
If you are using Arch Linux, install [ncurses5-compat-libs](https://aur.archlinux.org/packages/ncurses5-compat-libs).
## Project configuration
### Setup Checkstyle
Mapbox uses specific IDE settings related to code and check style.
See [checkstyle guide](https://github.com/mapbox/mapbox-gl-native-android/wiki/Setting-up-Mapbox-checkstyle) for configuration details.
#### Resolving duplicate file entries
With buck build support, Android Studio can complain about duplicate source files. To remove this warning, open `MapboxGLAndroidSDK.iml` find the list of `excludeFolder` entries and add `<excludeFolder url="file://$MODULE_DIR$/../../../misc/" />` line.
### Setting API Key
_The test application (used for development purposes) uses MapTiler vector tiles, which require a MapTiler account and API key._
With the first gradle invocation, gradle will take the value of the `MGL_API_KEY` environment variable and save it to `MapboxGLAndroidSDKTestApp/src/main/res/values/developer-config.xml`. If the environment variable wasn't set, you can edit `developer-config.xml` manually and add your api key to the `api_key` resource.
## Running project
Run the configuration for the `MapboxGLAndroidSDKTestApp` module and select a device or emulator to deploy on. Based on the selected device, the c++ code will be compiled for the related processor architecture. You can see the project compiling in the `View > Tool Windows > Gradle Console`.
More information about building and distributing this project in [DISTRIBUTE.md](DISTRIBUTE.md).
## Additional resources
### Using the SDK snapshot
Instead of using the latest stable release of the Maps SDK for Android, you can use a "snapshot" or the beta version if there is one available. Our snapshots are built every time a Github pull request adds code to this repository's `master` branch. If you'd like to use a snapshot build, your Android project's gradle file should have -SNAPSHOT appended to the SDK version number:
```java
// Mapbox SDK dependency
implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.1.0-SNAPSHOT'
```
You also need to have the section below in your build.gradle root folder to be able to resolve the SNAPSHOT dependencies:
```
allprojects {
repositories {
jcenter()
maven { url 'https://oss.jfrog.org/artifactory/oss-snapshot-local/' }
}
}
```
### Symbolicating native crashes
When hitting native crashes you can use ndk-stack to symbolicate crashes.
More information in [this](https://github.com/mapbox/mapbox-gl-native-android/wiki/Getting-line-numbers-from-an-Android-crash-with-ndk-stack) guide.

View File

@@ -1,131 +1,50 @@
# MapLibre Maps SDK for Android
# MapLibre GL Native for Android
The MapLibre Maps SDK for Android is a library based on MapLibre GL Native for embedding interactive map views with scalable, customizable vector maps onto Android devices.
[![GitHub Action build status](https://github.com/maplibre/maplibre-gl-native/workflows/android-ci/badge.svg)](https://github.com/maplibre/maplibre-gl-native/actions/workflows/android-ci.yml) [![GitHub Action build status](https://github.com/maplibre/maplibre-gl-native/workflows/android-release/badge.svg)](https://github.com/maplibre/maplibre-gl-native/actions/workflows/android-release.yml)
MapLibre GL Native for Android is a library for embedding interactive map views with scalable, customizable vector maps onto Android devices.
## Getting Started
This particular README is for people who are interested in working on and improving the Maps SDK for Android. If you're looking for more general information and instructions on the Maps SDK:
1. Add bintray Maven repositories to your `build.gradle` at project level so that you can access MapLibre packages for Android:
Visit [https://docs.mapbox.com/android/maps/overview](https://docs.mapbox.com/android/maps/overview/) to see current documentation on the Maps SDK for Android.
```gradle
allprojects {
repositories {
...
mavenCentral()
}
}
```
Visit [https://docs.mapbox.com/android/api/map-sdk](https://docs.mapbox.com/android/api/map-sdk/) to view the Maps SDK's current API reference Javadoc files.
> **Note**
>
> [Bintray was turn off May 1st, 2021](https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/) so we migrated all packages to Maven central.
See [the Mapbox website's Android install flow](https://www.mapbox.com/install/android/) to install and use the Mapbox Maps SDK for Android in an application.
2. Add the library as a dependency into your module build.gradle
### Setup environment
```gradle
dependencies {
...
implementation 'org.maplibre.gl:android-sdk:<version>'
...
}
```
These instructions are for developers interested in making code-level contributions to the SDK itself. If you instead want to use the SDK in your app, see above.
3. Sync Gradle and rebuild your app.
#### Getting the source
> **Note**
> MapLibre by default ships with the proprietary Google Play Location Services. If you want to avoid pulling proprietary dependencies into your project, you can exclude Google Play Location Services as follows:
> ```gradle
> implementation ('org.maplibre.gl:android-sdk:<version>') {
> exclude group: 'com.google.android.gms'
> }
> ```
Clone the git repository and pull in submodules:
## Documentation
```bash
git clone git@github.com:mapbox/mapbox-gl-native-android.git && cd mapbox-gl-native-android
git submodule update --init --recursive
```
Visit [https://maplibre.org/maplibre-gl-native/android/api/](https://maplibre.org/maplibre-gl-native/android/api/) to view the current API reference Javadoc files for MapLibre GL Native for Android.
#### Installing dependencies
## Contributing
These dependencies are required for all operating systems and all platform targets.
- Latest stable [Android Studio](https://developer.android.com/studio/index.html)
- Update the Mapbox Maps SDK for Android with the latest
- Android SDK Build-Tools
- Android Platform-Tools
- Android SDK Tools
- CMake
- NDK
- LLDB
- Modern C++ compiler that supports `-std=c++14`\*
- clang++ 3.5 or later or
- g++-4.9 or later
- [Node.js](https://nodejs.org/)
- make sure [npm](https://www.npmjs.com) is installed as well
- [ccache](https://ccache.samba.org/) (optional)
**Note**: We partially support C++14 because GCC 4.9 does not fully implement the
final draft of the C++14 standard. More information in [DEVELOPING.md](../../DEVELOPING.md).
**Note**: On macOS you can install clang with installing the [Apple command line developer tools](https://developer.apple.com/download/).
### Opening the project
#### macOS
* Environment: Android Studio + NDK
* `JAVA_HOME=/Applications/Android Studio.app/Contents/jre/Contents/Home`
* `ANDROID_SDK_ROOT=~/Library/Android/sdk`
* See NDK version discussion on issue: [maplibre/maplibre-gl-native/#xxx](https://github.com/maplibre/maplibre-gl-native/issues/xxx)
```
cd platform/android
# generate the required build files and open the project with Android Studio
make aproj
# Build package
BUILDTYPE=Debug make apackage
# BUILDTYPE=Release make apackage
# Build release Test App
make android
# Generate javadoc
make android-javadoc
```
#### linux
run `make android-configuration` in the root folder of the project and open in Android Studio.
If you are using Arch Linux, install [ncurses5-compat-libs](https://aur.archlinux.org/packages/ncurses5-compat-libs).
### Project configuration
#### Setup Checkstyle
Mapbox uses specific IDE settings related to code and check style.
See [checkstyle guide](https://github.com/mapbox/mapbox-gl-native-android/wiki/Setting-up-Mapbox-checkstyle) for configuration details.
#### Resolving duplicate file entries
With buck build support, Android Studio can complain about duplicate source files. To remove this warning, open `MapboxGLAndroidSDK.iml` find the list of `excludeFolder` entries and add `<excludeFolder url="file://$MODULE_DIR$/../../../misc/" />` line.
##### Setting API Key
_The test application (used for development purposes) uses MapTiler vector tiles, which require a MapTiler account and API key._
With the first gradle invocation, gradle will take the value of the `MGL_API_KEY` environment variable and save it to `MapboxGLAndroidSDKTestApp/src/main/res/values/developer-config.xml`. If the environment variable wasn't set, you can edit `developer-config.xml` manually and add your api key to the `api_key` resource.
### Running project
Run the configuration for the `MapboxGLAndroidSDKTestApp` module and select a device or emulator to deploy on. Based on the selected device, the c++ code will be compiled for the related processor architecture. You can see the project compiling in the `View > Tool Windows > Gradle Console`.
More information about building and distributing this project in [DISTRIBUTE.md](DISTRIBUTE.md).
### Additional resources
#### Using the SDK snapshot
Instead of using the latest stable release of the Maps SDK for Android, you can use a "snapshot" or the beta version if there is one available. Our snapshots are built every time a Github pull request adds code to this repository's `master` branch. If you'd like to use a snapshot build, your Android project's gradle file should have -SNAPSHOT appended to the SDK version number:
```java
// Mapbox SDK dependency
implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.1.0-SNAPSHOT'
```
You also need to have the section below in your build.gradle root folder to be able to resolve the SNAPSHOT dependencies:
```
allprojects {
repositories {
jcenter()
maven { url 'https://oss.jfrog.org/artifactory/oss-snapshot-local/' }
}
}
```
#### Symbolicating native crashes
When hitting native crashes you can use ndk-stack to symbolicate crashes.
More information in [this](https://github.com/mapbox/mapbox-gl-native-android/wiki/Getting-line-numbers-from-an-Android-crash-with-ndk-stack) guide.
See [`DEVELOPING.md`](./DEVELOPING.md) for instructions on how to get started working on the codebase.

62
platform/ios/BAZEL.md Normal file
View File

@@ -0,0 +1,62 @@
# Building using Bazel
[Bazel](https://bazel.build) is also supported as a build option for getting a packaged release of the xcframework compiled for either static or dynamic linking.
Firstly you will have to ensure that Bazel is installed
`brew install baselisk`
From there you can use the script in platform/ios/platform/ios/scripts/package-bazel.sh
## There are 4 options:
`cd platform/ios/platform/ios/scripts`
Static xcframework compiled for release (this is default if no parameters are provided):
`./bazel-package.sh --static --release`
Static xcframework compiled for debug:
`./bazel-package.sh --static --debug`
Dynamic xcframework compiled for release:
`./bazel-package.sh --dynamic --release`
Dynamic xcframework compiled for debug:
`./bazel-package.sh --dynamic --debug`
All compiled frameworks will end up in the `bazel-bin/platform/ios/` path from the root of the repo.
Also you can use the link option to ensure that the framework is able to link.
`./bazel-package.sh --link`
#### Bazel build files are placed in a few places throughout the project:
`BUILD.bazel`
- Covering the base cpp in the root `src` directory.
`vendor/BUILD.bazel`
- Covering the submodule dependencies of Maplibre.
`platform/default/BUILD.bazel`
- Covering the cpp dependencies in default.
`platform/darwin/BUILD.bazel`
- Covering the cpp source in platform/default.
`platform/ios/platform/ios/vendor/`
- Covering the iOS specific dependencies.
`platform/ios/BUILD.bazel`
- Covering the source in `platform/ios/platform/ios/src` and `platform/ios/platform/darwin/src` as well as defining all the other BUILD.bazel files and defining the xcframework targets.
## There are also some other areas that make bazel work:
`WORKSPACE`
- Defines the "repo" and the different modules that are loaded in order to compile for Apple.
`.bazelversion`
- Defines the version of bazel used, important for specific support for Apple targets.
`bazel/flags.bzl`
- Defines some compilation flags that are used between the different build files.

View File

@@ -1,34 +1,15 @@
# Contributing
If you have a usage question for a product built on Mapbox GL (such as our iOS or Android SDKs), please visit https://www.mapbox.com/help/.
If you have a usage question for a product built on Maplibre GL Native (such as our iOS or Android SDKs), please create a discussion thread on [GitHub Discussions](https://github.com/maplibre/maplibre-gl-native/discussions/categories/q-a).
If you want to contribute code:
1. Please familiarize yourself with the [install process](INSTALL.md).
1. Please familiarize yourself with the [install process](./INSTALL.md).
1. Ensure that existing [pull requests](https://github.com/mapbox/mapbox-gl-native-ios/pulls) and [issues](https://github.com/mapbox/mapbox-gl-native-ios/issues) don’t already cover your contribution or question.
1. Ensure that existing [pull requests](https://github.com/maplibre/maplibre-gl-native/pulls?q=is%3Aopen+is%3Apr+label%3AiOS) and [issues](https://github.com/maplibre/maplibre-gl-native/issues?q=is%3Aopen+is%3Aissue+label%3AiOS) don’t already cover your contribution or question.
1. Pull requests are gladly accepted. If there are any changes that developers using one of the GL SDKs should be aware of, please update the **master** section of the relevant changelog(s):
* [Mapbox Maps SDK for iOS](platform/ios/CHANGELOG.md)
* [Mapbox Maps SDK for macOS](platform/macos/CHANGELOG.md)
2. Pull requests are gladly accepted. If there are any changes that developers using one of the GL SDKs should be aware of, please update the **main** section of the [iOS changelog](platform/ios/CHANGELOG.md) or [macOS changelog](platform/macos/CHANGELOG.md).
1. Prefix your commit messages with the platform(s) your changes affect: `[ios]` or `[macos]`.
3. Prefix your commit messages with the platform(s) your changes affect: `[ios]` or `[macos]`.
Please note the special instructions for contributing new source code files, asset files, or user-facing strings to the [iOS SDK](platform/ios/DEVELOPING.md#contributing) or [macOS SDK](platform/macos/DEVELOPING.md#contributing).
### Github issue labels
Our labeling system is:
* **minimalistic:** Labels’ usefulness are inversely proportional to how many we have.
* **objective:** Labels should be objective enough that any two people would agree on a labeling decision.
* **useful:** Labels should track state or capture semantic meaning that would otherwise be hard to search for.
We’ve color-coded our labels by facet to make them easier to use:
* type (blue)
* platform (black)
* actionable status (red)
* non-actionable status (grey)
* importance / urgency (green)
* topic / project / misc (yellow)

View File

@@ -1,9 +1,11 @@
# MapLibre Maps SDKs for iOS and macOS
# MapLibre GL Native for iOS and macOS
MapLibre GL Native for iOS and macOS is an open-source framework for embedding interactive map views with scalable, customizable vector maps into Cocoa Touch applications on iOS 9.0 and above using Objective-C, Swift, or Interface Builder. It takes stylesheets that conform to the [MapLibre GL Style Specification](https://maplibre.org/maplibre-gl-js-docs/style-spec/), applies them to vector tiles that conform to the [Mapbox Vector Tile Specification](https://www.mapbox.com/developers/vector-tiles/), and renders them using OpenGL. It is based on the MapLibre GL Native library.
- [MapLibre GL Native for iOS](platform/ios/README.md)
- [MapLibre GL Native for macOS](platform/macos/README.md)
The MapLibre Maps SDK for iOS is an open-source framework for embedding interactive map views with scalable, customizable vector maps into Cocoa Touch applications on iOS 9.0 and above using Objective-C, Swift, or Interface Builder. It takes stylesheets that conform to the [MapLibre GL Style Specification](https://maplibre.org/maplibre-gl-js-docs/style-spec/), applies them to vector tiles that conform to the [Mapbox Vector Tile Specification](https://www.mapbox.com/developers/vector-tiles/), and renders them using OpenGL. It is based on the MapLibre GL Native library.
## License
MapLibre GL Native is licensed under the [2-Clause BSD license](LICENSE.md). The licenses of its dependencies are tracked via [FOSSA](https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fmapbox%2Fmapbox-gl-native):
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fmapbox%2Fmapbox-gl-native.svg?type=large)](https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fmapbox%2Fmapbox-gl-native)
MapLibre GL Native is licensed under the [2-Clause BSD license](LICENSE.md).

View File

@@ -1,6 +1,6 @@
# Contributing to the Mapbox Maps SDK for iOS
# Contributing to MapLibre GL Native for iOS
This document explains how to build the Mapbox Maps SDK for iOS from source. It is intended for advanced developers who wish to contribute to Mapbox GL and the Mapbox Maps SDK for iOS.
This document explains how to build MapLibre GL Native for iOS from source. It is intended for advanced developers who wish to contribute to the library.
## Requirements
@@ -16,6 +16,9 @@ make iproj
# make Xcode workspace, but run in headless mode
make iproj CI=1
# Make Frameworks
make xcframework BUILDTYPE=Release
```
### Xcode schemes
@@ -88,7 +91,7 @@ To add any Objective-C type, constant, or member to the iOS SDK’s public inter
1. Ensure that the symbol is pure Objective-C and does not rely on any language features specific to Objective-C++ or the C11 dialect of C – so no namespaced types or classes named with emoji! 🙃 Most projects that depend on this SDK are either written in pure Objective-C (GNU99 dialect) or Swift, which cannot yet bridge C++ types.
1. Name the symbol according to [Cocoa naming conventions](https://developer.apple.com/library/prerelease/content/documentation/Cocoa/Conceptual/CodingGuidelines/CodingGuidelines.html#//apple_ref/doc/uid/10000146i). Use the `MGL` class prefix to avoid conflicts with client code. If the symbol has an analogue in MapKit, name the symbol according to MapKit.
1. Provide full documentation comments. We use [jazzy](https://github.com/realm/jazzy/) to produce the documentation found in the SDK distribution and [on the website for this SDK](https://docs.mapbox.com/ios/api/maps/). We also recognize that many developers rely on Xcode’s Quick Help feature. jazzy supports Markdown formatting; however, Quick Help supports only [HeaderDoc](https://developer.apple.com/legacy/library/documentation/DeveloperTools/Conceptual/HeaderDoc/intro/intro.html) syntax and a subset of Doxygen syntax. For hyperlinks, use HTML syntax, which is recognized by both tools.
1. Provide full documentation comments. We use [jazzy](https://github.com/realm/jazzy/) to produce the documentation found in the SDK distribution and [on the website for this SDK](https://maplibre.org/maplibre-gl-native/ios/api/). We also recognize that many developers rely on Xcode’s Quick Help feature. jazzy supports Markdown formatting; however, Quick Help supports only [HeaderDoc](https://developer.apple.com/legacy/library/documentation/DeveloperTools/Conceptual/HeaderDoc/intro/intro.html) syntax and a subset of Doxygen syntax. For hyperlinks, use HTML syntax, which is recognized by both tools.
### Making a type or constant public
@@ -130,6 +133,9 @@ To add or update text that the user may see in the iOS maps SDK:
### Adding a localization
> **Warning**
> This section is outdated.
Translations of all the Mapbox GL Native SDKs are managed [in Transifex](https://www.transifex.com/mapbox/mapbox-gl-native/). If your language already has a translation, feel free to complete or proofread it. Otherwise, please [request your language](https://www.transifex.com/mapbox/mapbox-gl-native/languages/). Note that we’re primarily interested in languages that iOS supports as system languages.
Once you’ve finished translating the SDK into a new language in Transifex, perform these steps to make Xcode aware of the translation:
@@ -185,6 +191,7 @@ You can review test results in `$(IOS_OUTPUT_PATH)/Logs/Test`.
* `make ios-static-analyzer` runs unit tests from the "CI" scheme with the Static Analyzer enabled.
* `make ios-uitest` runs user interface testing from the "iosapp" scheme.
These commands are run by default on a single Simulator. To enable legacy iOS versions and more device types, add `MORE_SIMULATORS=YES`. Use `IOS_LATEST=YES`, `IOS_11=YES`, etc. to test on specific iOS versions.
To only run a specific test or class of tests, add `ONLY_TESTING=test/MGLNameOfTestClass/testNameOfTest`.
@@ -194,8 +201,8 @@ To skip a specific test or class of tests, add `SKIP_TESTING=test/MGLNameOfTestC
To run the cross-platform tests in Xcode instead of on the command line:
1. Run `make iproj` to set up the workspace.
1. Change the scheme to “test (platform project)” and press Command-R (⌘-R) to run core unit tests.
1. Change the scheme to “CI” and press Command-U (⌘-U) to run SDK integration tests.
2. Change the scheme to “test (platform project)” and press Command-R (⌘-R) to run core unit tests.
3. Change the scheme to “CI” and press Command-U (⌘-U) to run SDK integration tests.
### Testing from the command line
@@ -220,6 +227,9 @@ xcodebuild test -scheme CI -testPlan CI-Expressions \
## Access tokens
> **Warning**
> This section is outdated.
The included applications use Mapbox vector tiles, which require a Mapbox account and API access token. Obtain an access token on the [Mapbox account page](https://www.mapbox.com/studio/account/tokens/).
Before running the demo ("`iosapp`") or benchmarking ("`bench`") applications, first create a new text file called `.mapbox` or `mapbox` in your home directory containing your access token. The access token will then be automatically inserted into the application's Info.plist at runtime.
@@ -233,3 +243,7 @@ Before running the demo ("`iosapp`") or benchmarking ("`bench`") applications, f
- Two-finger single-tap to zoom out one level
- Double-tap, long-pressing the second, then pan up and down to "quick zoom" (meant for one-handed use)
- Use the debug menu to add test annotations, reset position, and cycle through the debug options.
## Simulator
You can run automated test on a Simulator or Device by changing to the Scheme `iosapp` and choosing `Product` > `Test` (or use `⌘-U`). Use `⌘-9` to navigate to `Reports` to see results and browse through screenshots. This method of testing should work well with CI tools such as GitHub Actions, Xcode Server Bots, & AWS Device Farm.

View File

@@ -1,15 +1,25 @@
# [Mapbox Maps SDK for iOS](https://docs.mapbox.com/ios/maps/)
# MapLibre GL Native for iOS
[![Circle CI build status](https://circleci.com/gh/mapbox/mapbox-gl-native.svg?style=shield)](https://circleci.com/gh/mapbox/workflows/mapbox-gl-native/tree/master)
[![GitHub Action build status](https://github.com/maplibre/maplibre-gl-native/workflows/ios-ci/badge.svg)](https://github.com/maplibre/maplibre-gl-native/actions/workflows/ios-ci.yml) [![GitHub Action build status](https://github.com/maplibre/maplibre-gl-native/workflows/ios-release/badge.svg)](https://github.com/maplibre/maplibre-gl-native/actions/workflows/ios-release.yml)
A library based on [Mapbox GL Native](https://github.com/mapbox/mapbox-gl-native/blob/master/README.md) for embedding interactive map views with scalable, customizable vector maps into Cocoa Touch applications on iOS using Objective-C, Swift, or Interface Builder.
A library based on [MapLibre GL Native](https://github.com/maplibre/maplibre-gl-native) for embedding interactive map views with scalable, customizable vector maps into Cocoa Touch applications on iOS using Objective-C, Swift, or Interface Builder.
This repository is for day-to-day development of the SDK. Building the SDK yourself requires [a number of dependencies and steps](../../INSTALL.md) that are unnecessary for developing production applications. For production applications, please consider installing an official, prebuilt release instead; see the [Mapbox Maps SDK for iOS website](https://docs.mapbox.com/ios/maps/) for installation instructions.
This repository contains releases of the Mapbox Maps SDK from v5.5.0-alpha.3 on. Releases prior to Maps SDK for iOS v5.5.0-alpha.2 can be downloaded via CocoaPods, Carthage, and the [Mapbox GL Native releases page](https://github.com/mapbox/mapbox-gl-native/releases).
* [Integrate the Mapbox Maps SDK for iOS into your application](https://www.mapbox.com/install/ios/).
* [Learn about custom builds](INSTALL.md)
* [Contribute to the Mapbox Maps SDK for iOS](DEVELOPING.md)
![](docs/img/screenshot.png)
![](docs/img/screenshot.png)
## Getting Started
1. To add a package dependency to your Xcode project, select File > Swift Packages > Add Package Dependency and enter its repository URL. You can also navigate to your target’s General pane, and in the “Frameworks, Libraries, and Embedded Content” section, click the + button, select Add Other, and choose Add Package Dependency.
2. Either add MapLibre GitHub distribution URL (https://github.com/maplibre/maplibre-gl-native-distribution) or search for `maplibre-gl-native` package.
3. Choose "next". Xcode should clone the distribution repository and download the binaries.
## Documentation
- [MapLibre GL Native for iOS API Reference](https://maplibre.org/maplibre-gl-native/ios/api/)
## Contributing
See [`CONTRIBUTING.md`](./CONTRIBUTING.md).

View File

@@ -1,30 +1,22 @@
# [Mapbox Maps SDK for macOS](https://mapbox.github.io/mapbox-gl-native/macos/)
# MapLibre GL Native for macOS
[![Circle CI build status](https://circleci.com/gh/mapbox/mapbox-gl-native-ios.svg?style=shield)](https://circleci.com/gh/mapbox/workflows/mapbox-gl-native-ios/tree/master)
[![GitHub Action build status](https://github.com/maplibre/maplibre-gl-native/workflows/macos-ci/badge.svg)](https://github.com/maplibre/maplibre-gl-native/actions/workflows/macos-ci.yml) [![GitHub Action build status](https://github.com/maplibre/maplibre-gl-native/workflows/macos-release/badge.svg)](https://github.com/maplibre/maplibre-gl-native/actions/workflows/macos-release.yml)
Put interactive, scalable world maps into your native Cocoa application with the Mapbox Maps SDK for macOS.
Put interactive, scalable world maps into your native Cocoa application with MapLibre GL Native for macOS.
* Mapbox-curated [map styles](https://www.mapbox.com/maps/) and [OpenStreetMap-based](https://www.mapbox.com/vector-tiles/mapbox-streets-v7/) [vector tiles](https://www.mapbox.com/vector-tiles/) make it easy to get started.
* Customize every aspect of the map’s appearance in code or visually using [Mapbox Studio](https://www.mapbox.com/mapbox-studio/).
* High-performance OpenGL rendering and multitouch gestures keep your users happy.
* A well-designed, fully documented API helps you stay productive.
* Develop across [multiple platforms](../../README.md), including [iOS](../ios/README.md), using the same styles and similar APIs.
![](docs/img/screenshot.jpg)
The Mapbox Maps SDK for macOS is compatible with macOS 10.10.0 and above for Cocoa applications developed in Objective-C, Swift, Interface Builder, or AppleScript. For hybrid applications, consider [Mapbox GL JS](https://github.com/mapbox/mapbox-gl-js/).
MapLibre GL Native for macOS is compatible with macOS 10.10.0 and above for Cocoa applications developed in Objective-C, Swift, Interface Builder, or AppleScript. For hybrid applications, consider [MapLibre GL JS]([https://github.com/mapbox/mapbox-gl-js/](https://github.com/maplibre/maplibre-gl-js)).
Information for Mac developers:
## Contributing
* [Integrate the Mapbox Maps SDK for macOS into your application](https://mapbox.github.io/mapbox-gl-native/macos/)
* [Learn how to use the Mapbox Maps SDK for macOS](https://mapbox.github.io/mapbox-gl-native/macos/)
* [Browse example styles designed in Mapbox Studio](https://www.mapbox.com/gallery/)
Information for contributors:
* [Build the Mapbox Maps SDK for macOS from source](INSTALL.md)
* [Contribute to the Mapbox Maps SDK for macOS](DEVELOPING.md)
* [Build the MapLibre GL Native for macOS from source](INSTALL.md)
* [Contribute to MapLibre GL Native for macOS](CONTRIBUTING.md)
* [Mapbox Style Specification](https://www.mapbox.com/mapbox-gl-style-spec/)
* [Mapbox Vector Tile Specification](https://www.mapbox.com/developers/vector-tiles/)
Mapbox does not officially support the macOS SDK to the same extent as the iOS SDK; however, bug reports and pull requests are certainly welcome.
The MapLibre Organization does not officially support the macOS to the same extent as iOS (see [project tiers](https://github.com/maplibre/maplibre/blob/main/PROJECT_TIERS.md)); however, bug reports and pull requests are certainly welcome.

View File

@@ -1,4 +1,6 @@
# MapLibre Maps SDK for Qt
# MapLibre GL Native for Qt
[![GitHub Action build status](https://github.com/maplibre/maplibre-gl-native/workflows/qt-ci/badge.svg)](https://github.com/maplibre/maplibre-gl-native/actions/workflows/qt-ci.yml)
This is a community maintained MapLibre SDK for usage in Qt apps.
Both Qt5 (minimal 5.6) and Qt6 are supported.