Build truly artisanal hybrid apps
Peregrine was built for curious, detail-oriented developers to explore the full potential of iOS and Android while providing the essentials for feature-rich web views.
Type-safe serialization
Peregrine for iOS is written in 100% Swift. Use Codable interfaces for type-safe serialization and deserialization.
struct LocationResponse: Encodable {
let lat: Double
let lng: Double
}
func getLocation(call: Call) {
⋯
let response = LocationResponse(
lat: location.coordinate.latitude,
lng: location.coordinate.longitude
)
try! call.respond(with: response)
}
const { lat, lng } = await client.getLocation()
console.log(`You are at Latitude: ${lat}, Longitude: ${lng}`)
Asynchronous reactivity
Use Apple’s Combine framework to build reactive data pipelines that send asynchronous events to the web layer.
struct KeyboardEvent: Codable {
let state: String
let height: Double
}
class Keyboard {
@Published var keyboard: Event?
⋯
init() {
⋯
Publishers
.MergeMany(willHidePublisher, didHidePublisher, willShowPublisher, didShowPublisher)
.assign(to: &$keyboard)
}
}
const { Keyboard } = client
for await (const { state, height } of Keyboard.keyboard$) {
console.log(`Keyboard is ${state}, height: ${height}`)
}
Roadmap
Recipe Book
Create a shared repository for native code snippets, called Recipes.
1.0 Release
Reach version 1.0.0 on Peregrine for Web, iOS, and Android.
Performance Enhancements
Only use HTTP/MessageChannels for the bridge when necessary.
Binary support for Android
Bring parity with iOS by supporting binary data.
App Portfolio
Celebrate and showcase success stories of Peregrine users.
Subscribe to our newsletter
Keep up to date with release announcements, community updates, new recipes, and more.