Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/rustunit/bevy_ios_alerts

Bevy plugin to request ios native UIAlert popups
https://github.com/rustunit/bevy_ios_alerts

bevy gamedev ios rust swift uikit

Last synced: 2 months ago
JSON representation

Bevy plugin to request ios native UIAlert popups

Awesome Lists containing this project

README

        

# bevy_ios_alerts

[![crates.io](https://img.shields.io/crates/v/bevy_ios_alerts.svg)](https://crates.io/crates/bevy_ios_alerts)

Rust crate and Swift package to easily integrate iOS's native UIAlerts API into a Bevy application.

![demo](./assets/demo.gif)

demo from our game using this crate: [zoolitaire.com](https://zoolitaire.com)

**See also** [bevy_ios_iap](https://github.com/rustunit/bevy_ios_iap), [bevy_ios_notifications](https://github.com/rustunit/bevy_ios_notifications), [bevy_ios_gamecenter](https://github.com/rustunit/bevy_ios_gamecenter), [bevy_ios_review](https://github.com/rustunit/bevy_ios_review) & [bevy_ios_impact](https://github.com/rustunit/bevy_ios_impact)

## Instructions

1. Add to XCode: Add SPM (Swift Package Manager) dependency
2. Add Rust dependency
3. Setup Plugin

### 1. Add to XCode

Go to `File` -> `Add Package Dependencies` and paste `https://github.com/rustunit/bevy_ios_alerts.git` into the search bar on the top right:
![xcode](./assets/xcode-spm.png)

### 2. Add Rust dependency

```
cargo add bevy_ios_alerts
```

or

```
bevy_ios_alerts = { version = "0.2" }
```

### 3. Setup Plugin

Initialize Bevy Plugin:

```rust
app.add_plugins(bevy_ios_alerts::IosAlertsPlugin);
```

Trigger Alert in your application code:

```rust
fn system_triggerin_alerts(mut events: EventWriter) {

events.send(IosAlert::Message {
title: String::from("title"),
msg: String::from("msg"),
button: String::from("ok"),
});

events.send(IosAlert::Dialog {
title: String::from("title"),
msg: String::from("this is a dialog with multiple buttons"),
button_yes: String::from("absolutely yes"),
button_no: String::from("no no no"),
});

events.send(IosAlert::Input {
title: String::from("title"),
msg: String::from("input box"),
button: String::from("ok"),
placeholder: String::from("placeholder"),
});
}

fn process_alert_response(mut events: EventReader) {
for e in events.read() {
info!("incoming alert response: {e:?}");
}
}
```

## Bevy version support

|bevy|bevy\_ios\_alerts|
|----|---|
|0.14|0.2,main|
|0.13|0.1|

# License

All code in this repository is dual-licensed under either:

- MIT License (LICENSE-MIT or http://opensource.org/licenses/MIT)
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)

at your option. This means you can select the license you prefer.

## Your contributions
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.