realm / realm-browser-osx Goto Github PK
View Code? Open in Web Editor NEWDEPRECATED - Realm Browser for Mac OS X has been replaced by realm-studio which is cross platform.
Home Page: https://realm.io
DEPRECATED - Realm Browser for Mac OS X has been replaced by realm-studio which is cross platform.
Home Page: https://realm.io
There are a handful of unit tests for the browser, and it'd be great if any PR & push to the master branch would be automatically validated by running it in a continuous integration environment. I'd recommend setting up something like Travis CI, so that CI results can be available publicly, and not further strain our internal CI infrastructure.
Realm Browser does not automatically refresh when the underlying data changes due to insert, update, delete operation. I have to manually close the Realm Browser and then open it again to see the changes.
Realm Browser
Version 0.93.2 (7)
The ability to add/remove or reorder properties inside a .realm file.
Does it make sense to update the browser on every realm release? If so, should we automate cutting releases (e.g. commit & tag realm-browser repo when running the release_cocoa
CI job)?
Once CI is set up, we can start looking at automating future App Store submissions in line with major milestone releases of Realm Objective-C.
While it's already possible to modify individual properties of objects, the ability to add an manipulate data within .realm files needs to be greatly enhanced.
Create a new icon file in the same design vein as Apple's document formats to be used for .realm files that have been associated with be opened in Realm Browser.
The browser can generate Data Models for Java and Objective-C, but not Swift.
Use a library like Core Plot to graph data points in a .realm file
The bundle ID in this repo is io.realm.realmbrowser
, compared to io.realm.${PRODUCT_NAME:rfc1034identifier}
in realm-cocoa
, which should resolve to the same thing. Why was this change made?
The browser itself doesn’t have much UI — it’s all about the data. So if the data is crappy, the browser looks crappy.
Can we make a new screenshot with the following issues fixed?
At present, the "Open Common Location" menu item scans all of the most common developer directories on a Mac (iPhone Simulator, Downloads etc) for .realm files.
The experience of this menu item isn't great. Indexing of .realm files is done on the main thread, and can be time-consuming, blocking the Realm Browser's UI.
A review of this feature and how it works should be undertaken, but at the very least, indexing should be moved to a background dispatch queue.
This call to invalidate the realm was added in this repo, but not in realm-cooca
: https://github.com/realm/realm-browser/blob/0072b83cca1cc42aa328bfbbd984ee25b53c5a5c/RealmBrowser/RLMTestDataGenerator.m#L48. Why is it now required?
Introducing a menu item that creates a new, empty .realm file, and potentially guides the user in adding new data to it.
From @webmagnets on January 4, 2015 20:48
In the Realm browser I am unable to copy with ⌘-c or paste with ⌘-p. It works if I right click and then choose one of those options from the context menu.
Thanks for all your hard work guys (and girls?)!
p.s. - Just in case someone is searching for this issue, var ⌘ = "command" // :smile:
Copied from original issue: realm/realm-swift#1295
Subject. 😉
It's easier to track current version here. https://github.com/realm/realm-browser-osx/releases
And how soon can I see latest version in the Mac AppStore?
The ability to export all new copies of .realm files.
From @timanglade on April 6, 2015 5:55
Since the browser is a relevant tool for users who otherwise don’t need to download realm-cocoa (e.g. Java developers, administrators, app designers, etc.), it makes sense at this point to distribute the browser on the app store (in addition to including it in our .zip realm-cocoa releases).
Copied from original issue: realm/realm-swift#1733
When editing dates it sometimes show up a small data picker, sometimes edits it as string. Seems a bit random depending on how you click on it.
The ability to re-order Realm sub-objects inside array properties.
When determining whether excessive file sizes is caused by version pinning a helpful first step can be to write a copy of the Realm to a new file to see whether that shrinks the file. It'd be convenient if the browser supported doing this.
The ability to add new classes to a .realm file.
When creating or modifying objects that contain RLMObject or RLMArray properties, it would be possible to set (and in the case of RLMArray, reorder) the sub-objects that these properties are referencing.
This may require a new UI dialog to be designed.
From @webmagnets on April 20, 2015 20:59
Here is a video that shows the unexpected behavior:
https://www.dropbox.com/s/6dtitwguo0pgr7e/realm%20navigation.mov?dl=0
Copied from original issue: realm/realm-swift#1770
Once NULL support is published in Realm, introducing with it, a file format upgrade, there may be unique instances where a combination of the Realm Browser's version of Realm may not support specific version numbers of Realm files (Both potentially older or newer).
While this is not generally expected, error checking will be added to Realm Core in order to account for these scenarios when and if they arise. In that case, Realm Browser also needs specific mechanisms in order to cope with any versioning exceptions that Core might throw.
Ensure that Realm Browser isn't included in the release zips anymore.
I'm just getting started with Realm swift using the swift-2.0 branch. I've both successfully written a program that can write to and read from a database as well as run the TableView sample. In both cases, when I attempt to open the default.realm file, which is located in my simulator directory, I get an "Invalid database" error.
Since I haven't been able to figure out how to upload the .realm files, here are links to them on Dropbox:
https://www.dropbox.com/s/u1dznkm77wtoh12/TableView.realm?dl=0
For data objects containing common format data (such as images and potentially sounds), the browser should be smart enough to identify these by their magic numbers and display a preview of the data.
Images | Sounds |
---|---|
JPEG | AAC |
GIF | AIF |
TIFF | CAF |
PNG | MP3 |
MP4 | |
------ | M4A |
------ | WAV |
To make it easier for developers to locate .realm files generated by Simulator builds, a basic indexing feature to aggregate all of the apps using Realm inside the simulator should be added.
Travis only builds the browser, but it should really be running the unit tests to confirm that everything still works. The current CI script is xctool -workspace RealmBrowser.xcworkspace -scheme RealmBrowser build CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO
.
The Realm Browser was working perfectly before Realm v0.94.0, but since updating (we moved to cocoapods too); the browser now crashes if it is open while a change to the Realm Database is made in the running Simulator. I am using the new version of the Browser from the AppStore.
I'm able to reproduce this 100% of the time. Here's the crash info...
Process: Realm Browser [78299]
Path: /Applications/Realm Browser.app/Contents/MacOS/Realm Browser
Identifier: io.realm.realmbrowser
Version: 0.93.2 (7)
App Item ID: 1007457278
App External ID: 812659827
Code Type: X86-64 (Native)
Parent Process: ??? [1]
Responsible: Realm Browser [78299]
User ID: 501
Date/Time: 2015-08-06 11:15:19.276 -0400
OS Version: Mac OS X 10.10.4 (14E46)
Report Version: 11
Anonymous UUID: D97EB571-3045-7E10-D89F-2FB0D4CF110D
Time Awake Since Boot: 610000 seconds
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Application Specific Information:
abort() called
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libsystem_kernel.dylib 0x00007fff87bf6286 __pthread_kill + 10
1 libsystem_c.dylib 0x00007fff91f2cb53 abort + 129
2 org.cocoapods.Realm 0x000000010c23fbc9 please_report_this_error_to_help_at_realm_dot_io + 9
3 org.cocoapods.Realm 0x000000010c23fd88 realm::util::terminate_internal(std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) + 328
4 org.cocoapods.Realm 0x000000010c1f9917 realm::util::terminate(char const*, char const*, long) + 473
5 org.cocoapods.Realm 0x000000010c350e22 realm::Table::update_accessors(unsigned long const*, unsigned long const*, realm::Table::AccessorUpdater&) + 290
6 org.cocoapods.Realm 0x000000010c2f7bb5 void realm::_impl::TransactLogParser::do_parse<realm::Group::TransactAdvancer>(realm::Group::TransactAdvancer&) + 5285
7 org.cocoapods.Realm 0x000000010c2f1248 realm::Group::advance_transact(unsigned long, unsigned long, realm::BinaryData const*, realm::BinaryData const*) + 168
8 org.cocoapods.Realm 0x000000010c2fc0a3 realm::SharedGroup::advance_read(realm::SharedGroup::VersionID) + 355
9 org.cocoapods.Realm 0x000000010c22d1f5 -[RLMRealm handleExternalCommit] + 124
10 org.cocoapods.Realm 0x000000010c2301ae -[RLMNotifier listen]::$_0::__invoke(void*) + 38
11 com.apple.CoreFoundation 0x00007fff87ccba01 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
12 com.apple.CoreFoundation 0x00007fff87cbdb8d __CFRunLoopDoSources0 + 269
13 com.apple.CoreFoundation 0x00007fff87cbd1bf __CFRunLoopRun + 927
14 com.apple.CoreFoundation 0x00007fff87cbcbd8 CFRunLoopRunSpecific + 296
15 com.apple.HIToolbox 0x00007fff8678056f RunCurrentEventLoopInMode + 235
16 com.apple.HIToolbox 0x00007fff867801ee ReceiveNextEventCommon + 179
17 com.apple.HIToolbox 0x00007fff8678012b _BlockUntilNextEventMatchingListInModeWithFilter + 71
18 com.apple.AppKit 0x00007fff8e8008ab _DPSNextEvent + 978
19 com.apple.AppKit 0x00007fff8e7ffe58 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 346
20 com.apple.AppKit 0x00007fff8e7f5af3 -[NSApplication run] + 594
21 com.apple.AppKit 0x00007fff8e772244 NSApplicationMain + 1832
22 libdyld.dylib 0x00007fff882fc5c9 start + 1
Thread 1:: Dispatch queue: com.apple.libdispatch-manager
0 libsystem_kernel.dylib 0x00007fff87bf7232 kevent64 + 10
1 libdispatch.dylib 0x00007fff8e38ca6a _dispatch_mgr_thread + 52
Thread 2:
0 libsystem_kernel.dylib 0x00007fff87bf694a __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x00007fff8b41040d start_wqthread + 13
Thread 3:
0 libsystem_kernel.dylib 0x00007fff87bf694a __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x00007fff8b41040d start_wqthread + 13
Thread 4:
0 libsystem_kernel.dylib 0x00007fff87bf694a __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x00007fff8b41040d start_wqthread + 13
Thread 5:
0 libsystem_kernel.dylib 0x00007fff87bf694a __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x00007fff8b41040d start_wqthread + 13
Thread 6:
0 libsystem_kernel.dylib 0x00007fff87bf694a __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x00007fff8b41040d start_wqthread + 13
Thread 7:
0 libsystem_kernel.dylib 0x00007fff87bf694a __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x00007fff8b41040d start_wqthread + 13
Thread 8:
0 libsystem_kernel.dylib 0x00007fff87bf694a __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x00007fff8b41040d start_wqthread + 13
Thread 9:
0 libsystem_kernel.dylib 0x00007fff87bf694a __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x00007fff8b41040d start_wqthread + 13
Thread 10:
0 libsystem_kernel.dylib 0x00007fff87bf694a __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x00007fff8b41040d start_wqthread + 13
Thread 11:
0 libsystem_kernel.dylib 0x00007fff87bf14de mach_msg_trap + 10
1 libsystem_kernel.dylib 0x00007fff87bf064f mach_msg + 55
2 com.apple.CoreFoundation 0x00007fff87cbdeb4 __CFRunLoopServiceMachPort + 212
3 com.apple.CoreFoundation 0x00007fff87cbd37b __CFRunLoopRun + 1371
4 com.apple.CoreFoundation 0x00007fff87cbcbd8 CFRunLoopRunSpecific + 296
5 com.apple.AppKit 0x00007fff8e8c856b _NSEventThread + 137
6 libsystem_pthread.dylib 0x00007fff8b412268 _pthread_body + 131
7 libsystem_pthread.dylib 0x00007fff8b4121e5 _pthread_start + 176
8 libsystem_pthread.dylib 0x00007fff8b41041d thread_start + 13
Thread 12:: RLMRealm notification listener
0 libsystem_kernel.dylib 0x00007fff87bf721a kevent + 10
1 com.apple.Foundation 0x00007fff92584dc2 __NSThread__main__ + 1345
2 libsystem_pthread.dylib 0x00007fff8b412268 _pthread_body + 131
3 libsystem_pthread.dylib 0x00007fff8b4121e5 _pthread_start + 176
4 libsystem_pthread.dylib 0x00007fff8b41041d thread_start + 13
Thread 13:
0 libsystem_kernel.dylib 0x00007fff87bf694a __workq_kernreturn + 10
1 libsystem_pthread.dylib 0x00007fff8b41040d start_wqthread + 13
Thread 0 crashed with X86 Thread State (64-bit):
rax: 0x0000000000000000 rbx: 0x0000000000000006 rcx: 0x00007fff53a4fcb8 rdx: 0x0000000000000000
rdi: 0x000000000000130f rsi: 0x0000000000000006 rbp: 0x00007fff53a4fce0 rsp: 0x00007fff53a4fcb8
r8: 0x00007f99a991b000 r9: 0x0000000000000a00 r10: 0x0000000008000000 r11: 0x0000000000000206
r12: 0x00007fff53a501c8 r13: 0x0000000000000014 r14: 0x00007fff75585300 r15: 0x0000000000000014
rip: 0x00007fff87bf6286 rfl: 0x0000000000000206 cr2: 0x00007fff763e4fd8
Logical CPU: 0
Error Code: 0x02000148
Trap Number: 133
Based off our existing predicate work in Realm, we allow search look ups using NSPredicate formatting.
The ability to insert a search query string and have it return a list of matching results from all data types.
This could include potentially fuzzy logic such as having strings like 'Monday' resolve against date objects.
From @timanglade on May 4, 2015 15:12
Submit a design proposal (markdown file PR’d against realm/realm-cocoa) to propose a new code architecture for our design, accounting for #1387.
Copied from original issue: realm/realm-swift#1828
From @yoshyosh on January 22, 2015 2:13
Here are the browser designs https://www.dropbox.com/sh/l4oby8qv58aom6w/AABNKpT_AqopP-1QoQgb9bKda?dl=0
The main problem comes from accessing linked objects. With this design, when you click a link it will create a new table to the right of the link you clicked. This will allow data to be traversed infinitely.
We need to see what this feels like, with general json data samples like an actual request from the foursquare api, or anything more complex.
The prototype and experience are the most important at this stage vs being fully integrated with Realm
Copied from original issue: realm/realm-swift#1387
Now that the code base has been moved to its own repo, it'll be best to remove it from the realm-cocoa
repo as soon as possible.
Once the Realm Browser is properly moved, the website will need to be updated to reflect its new location.
In instances such as the Realm Plugin where multiple Realm files can be programmatically opened at once in the Browser, we'll need to implement an upper limit to ensure that the Browser does't get overloaded.
At present, if a sufficiently large number of Realm files is passed to the Browser, it'll attempt to open them all until it runs out of resources.
Remove Realm Browser's test components from the realm-cocoa
build scripts.
The Realm Browser presently uses a non-public API of Realm named the 'dynamic API' in order to interact with Realm files without having a proper model class implementation present.
This is obviously not an ideal solution as we'd like to have Realm Browser interacting with Realm exactly how users may interact with it.
As such, we're going to be identifying how Realm Browser interacts with the dynamic API and start paving the way to making the private API available publicly.
The search field seems to be broken on version 0.93.2. Clicking on it does not allow you to write in it, so there is no way to search.
Add the ability to select all rows in a table by pressing CMD+A allowing for quick deletion. Or better yet, a right click option in the Table List that would delete all rows in a table.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.