Sobre o reconhecimento de data center Realm
O Realm é um banco de dados móvel que é executado diretamente dentro de telefone, tablete ou dispositivo móvel. Este repositório contém o código-fonte para as versões iOS, macOS, tvOS e watchOS do Realm Swift e Realm Objective-C.
Por que usar o Realm
- Intuitivo para desenvolvedores: o Modelo de dados Realm orientado a objeto é simples de aprender, não precisa de um ORM e permite que você escreva menos código.
- Construído para dispositivos móveis: o Realm é completo, leve e usa de forma eficiente a memória, o espaço em disco e a duração da bateria.
- Projetado para uso offline: o reconhecimento de data center local do Realm mantém os dados no disco, para que os aplicativos funcionem tão bem offline quanto online.
Orientado a objetos: simplificar seu código
O Realm foi criado para desenvolvedores móveis, com simplicidade em mente. O Modelo de dados Realm idiomático e orientado a objeto pode economizar milhares de linhas de código.
// Define your models like regular Swift classes
class Dog: Object {
@Persisted var name: String
@Persisted var age: Int
}
class Person: Object {
@Persisted(primaryKey: true) var _id: String
@Persisted var name: String
@Persisted var age: Int
// Create relationships by pointing an Object field to another Class
@Persisted var dogs: List<Dog>
}
// Use them like regular Swift objects
let dog = Dog()
dog.name = "Rex"
dog.age = 1
print("name of dog: \(dog.name)")
// Get the default Realm
let realm = try! Realm()
// Persist your data easily with a write transaction
try! realm.write {
realm.add(dog)
}
objeto ativos: criar aplicativos reativos
Os objeto ativos do Realm média que os dados atualizados em qualquer lugar são atualizados automaticamente em todos os lugares.
// Open the default realm.
let realm = try! Realm()
var token: NotificationToken?
let dog = Dog()
dog.name = "Max"
// Create a dog in the realm.
try! realm.write {
realm.add(dog)
}
// Set up the listener & observe object notifications.
token = dog.observe { change in
switch change {
case .change(let properties):
for property in properties {
print("Property '\(property.name)' changed to '\(property.newValue!)'");
}
case .error(let error):
print("An error occurred: (error)")
case .deleted:
print("The object was deleted.")
}
}
// Update the dog's name to see the effect.
try! realm.write {
dog.name = "Wolfie"
}
SwiftUI
O Realm se integra diretamente ao SwiftUI, atualizando suas visualizações para que você não precise fazer isso.
struct ContactsView: View {
@ObservedResults(Person.self) var persons
var body: some View {
List {
ForEach(persons) { person in
Text(person.name)
}
.onMove(perform: $persons.move)
.onDelete(perform: $persons.remove)
}.navigationBarItems(trailing:
Button("Add") {
$persons.append(Person())
}
)
}
}
Totalmente criptografado
Os dados podem ser criptografados a bordo e em repouso, mantendo até os dados mais confidenciais seguros.
// Generate a random encryption key
var key = Data(count: 64)
_ = key.withUnsafeMutableBytes { (pointer: UnsafeMutableRawBufferPointer) in
guard let baseAddress = pointer.baseAddress else {
fatalError("Failed to obtain base address")
}
SecRandomCopyBytes(kSecRandomDefault, 64, baseAddress)
}
// Add the encryption key to the config and open the realm
let config = Realm.Configuration(encryptionKey: key)
let realm = try Realm(configuration: config)
// Use the Realm as normal
let dogs = realm.objects(Dog.self).filter("name contains 'Fido'")
Começar
Suportamos a instalação do Realm via Swift pacote Manager, CocoaPods, Carthage ou importando um Xcframework dinâmico.
Para obter mais informações, consulte as instruções detalhadas em nossos Docs.
Documentação
A documentação pode ser encontrada em mongodb.com/pt-br/docs/atlas/device-sdks/sdk/swift/. A referência da API está localizada em mongodb.com/pt-br/docs/realm-sdks/swift/latest/
Obtendo ajuda
- Precisa de ajuda com seu código?: Procure perguntas anteriores com amarcação
realm
no Stack Overflow ou faça uma nova pergunta. Para uma discussão geral que pode ser considerada muito ampla para o Stack Overflow, use o Community Federation. - Tem um bug para relatar? Abra um item do Github. Se possível, inclua a versão do Realm, um registro completo, o Arquivo de Realm e um projeto que mostre o problema.
- Tem uma solicitação de funcionalidade? Abra um item do Github. Diga-nos o que a funcionalidade deve fazer e por que você deseja a funcionalidade.
Construindo o Realm
Caso não queira usar a versão pré-compilada, você mesmo pode construir o Realm a partir da origem.
Pré-requisitos:
- O Realm de construção requer Xcode 15.3 ou mais recente.
- A construção da documentação do Realm requer joalheiro
Depois de ter todos os pré-requisitos necessários, a construção do Realm basta um único comando: sh build.sh build
. Você precisará de uma conexão com a Internet na primeira vez que construir o Realm para baixar o binário principal. Isso produzirá Realm.xcframework e RealmSwift.xcframework em build/Release/
.
Execute sh build.sh help
para ver toda a ação que você pode executar (compilar iOS/osx, gerar Docs, testar etc.).
Contribuindo
Consulte CONTRIBUTING.md para obter mais detalhes!
Código de Conduta
Este projeto está em conformidade com o Código de conduta do MongoDB. Ao participar, espera-se que você mantenha este código. Relate comportamento inaceitável para Community-condure@mongodb.com.
Licença
Realm Objective-C e Realm Swift são publicados sob a licença Apache 2.0 . O Realm Core também é publicado sob a licença Apache 2.0 e está disponível aqui.
Feedback
Se você usa o Realm e está satisfeito com ele, considere enviar um tuíte mencionando @realm para compartilhar suas ideias!
E se você não gostaria, por favor, deixe-nos saber o que você gostaria de melhorar, para que possamos corrigir!