Commit Graph

557 Commits

Author SHA1 Message Date
Minh Nguyễn
69cf21cece [ios] Restored readme in built package
Restored a build script statement that was accidentally deleted in #3203.
2016-01-05 22:53:27 -08:00
Minh Nguyễn
1420a49689 [ios] Generate API documentation using jazzy
Replaced appledoc usage with jazzy, which understands modern Objective-C syntax by virtue of using Clang ASTs. Nevertheless, we have to make lots of changes to our documentation syntax, which was tailored to appledocs quirks. The new syntax jives much better with what Xcode expects in terms of auto-indentation and Quick Help.

Fixes #1420.
2016-01-05 12:41:54 -08:00
John Firebaugh
e26b218883 [android, ios, osx] Emoji ⇢ ASCII in Bitrise notifications 2016-01-05 10:59:41 -08:00
Minh Nguyễn
5f58c015e4 [iOS] Transparent GLKView
Tie layer opacity to view opacity.

Fixes #3038.
2016-01-05 10:01:31 -08:00
Minh Nguyễn
f8f735b574 Rewrote documentation
Rewrote some copy to provide more context and link to more GL-related repos, including GL JS. Put the various SDKs in a table so we can show the various CI bot status images.

Integrated target list into the relevant documents. Rewrote large portions of iOS and OS X setup documentation to guide normal developers to more friendly places. Combined some Android documentation.

Moved SDK-specific documentation into platform/. Added a temporary readme in ios/ that points to the one in platform/ios/.
2016-01-05 08:04:16 -08:00
Minh Nguyễn
490907ac29 [android, ios, osx] Moved platform identifier into Slack user name
Also customized links for brevity.
2015-12-24 15:07:07 -08:00
Minh Nguyễn
633a3a5a3d [osx] Bitrise configuration
Fixes #2776.
2015-12-24 15:07:03 -08:00
Jason Wray
e4d8494852 [ios] snap to north if interaction ends within ±7°
First proposed in #938, implemented in #1059, reverted in #1064.
2015-12-24 13:45:51 -05:00
Jason Wray
2aa1e5ca18 [ios] vary annotation bounds fit padding based on view size
Fix #3392, #3110
2015-12-23 20:18:01 -05:00
Minh Nguyễn
d745ff0923 [ios] Meters per point at latitude
Renamed -metersPerPixelAtLatitude: to -metersPerPointAtLatitude:, leaving the old name as a deprecated alias. In Cocoa Touch terminology, “point” is the visual unit backed by pixels.
2015-12-22 17:06:43 -08:00
John Firebaugh
b60b6c47c0 [core] Merge SQLiteCache into the platform library
OfflineFileSource will depend on SQLite too.
2015-12-22 12:09:14 -08:00
John Firebaugh
3d37017c68 [ios, osx] Drop xcpretty
It's buggy and hides necessary diagnostics.
2015-12-21 16:59:35 -08:00
Minh Nguyễn
49bfdd662f [ios, osx] Optional peak altitude for flying 2015-12-20 04:11:14 -08:00
Minh Nguyễn
b7223f249d [ios, osx] Avoid transition to current camera
Fixes #2456.
2015-12-20 03:57:51 -08:00
Minh Nguyễn
d668c0fa84 [ios, osx] Better zoom level–altitude conversion
Greatly simplified conversions between zoom level and altitude. Adjusted field of view to more closely match MapKit. Conversions are now well within the same order of magnitude as MapKit at all latitudes.

Fixes #2266.
2015-12-20 03:57:28 -08:00
Minh Nguyễn
2cb70eac3c [ios, osx] Allow zero-duration flight
For consistency with -setCamera:…, a duration of 0 jumps instantaneously to the new location, while a negative value uses the distance-dependent default.

Due to the produced curve and applied easing, flyTo() doesn’t model a parabola or ballistic trajectory, but it does simulate powered flight to some extent.
2015-12-19 20:33:37 -08:00
John Firebaugh
110f1ec796 [ios, android] Add methods to remove a custom layer 2015-12-17 15:15:55 -08:00
John Firebaugh
a7e4e6bb1c [ios] Move source to src folder, matching osx 2015-12-17 10:16:22 -08:00
John Firebaugh
7a4e7376e1 Move platform scripts into platforms 2015-12-16 17:49:22 -08:00
Minh Nguyễn
bf89ed080b [ios] Renamed custom style layer invalidation method
Cf. -[UIView setNeedsDisplay] and -[MKOverlayRenderer setNeedsDisplay].
2015-12-16 16:15:28 -08:00
John Firebaugh
2ee52915fe [ios, android] Add a method to invalidate custom layers, forcing a repaint 2015-12-16 16:15:28 -08:00
Minh Nguyễn
350cafb903 Revert "Revert "[ios] Custom style layer""
This reverts commit 081e4e4451.
2015-12-16 15:48:55 -08:00
John Firebaugh
081e4e4451 Revert "[ios] Custom style layer"
ec9a4cd328
2015-12-16 14:05:54 -08:00
Minh Nguyễn
ec9a4cd328 [ios] Custom style layer
Exposed Map::addCustomLayer() publicly as an undocumented, block-based API. This change avoids the terms “layer”, “initialize”, “render”, and “altitude” because they overload existing terminology in the SDK, UIKit, or MapKit. (“Layer” is qualified as “style layer”.) There are outstanding questions about ARC memory management, but this approach works in both Objective-C and Swift for pure OpenGL programming.

Added a demo to iosapp that draws a green layer below any labels in Mapbox Streets.
2015-12-16 11:03:54 -08:00
Romain Quidet
b8be1f0632 code review updates: sprite_atlas brackets and nullable removed for reuseIdentifier of annotationImage 2015-12-15 16:36:17 -08:00
Romain Quidet
af45d87e54 2210: Sprites can be removed / updated correctly 2015-12-15 16:36:17 -08:00
Romain Quidet
02a32b55e4 2210: MGLAnnotationImage image can be update 2015-12-15 16:36:17 -08:00
John Firebaugh
9d0ab5549c [ios, android] Remove unnecessary portions of bitrise.yml 2015-12-15 14:29:33 -08:00
John Firebaugh
cf4f262df5 [ios, android] Remove version specifier to avoid Bitrise upgrade nag 2015-12-15 14:19:51 -08:00
John Firebaugh
a3536a1866 [ios] Move bitrise.yml into platform/ios 2015-12-15 13:59:20 -08:00
Minh Nguyễn
4e0e816653 [ios, osx] Added flyToCamera: variation that uses default duration 2015-12-15 12:52:13 -08:00
Minh Nguyễn
9aba820892 [ios, osx] Added flyTo to OS X; refactored camera setters 2015-12-15 12:52:13 -08:00
Minh Nguyễn
c3fe62fd3a [ios, osx] Corrected missing annotation tag assertion message
ref #3284
2015-12-15 11:51:12 -08:00
Minh Nguyễn
0fb2b855a4 [osx] Map camera
Shared MGLMapCamera between iOS and OS X. Unfortunately -camera and -setCamera: implementations need to be copy-pasted for now.
2015-12-13 17:26:53 -08:00
Minh Nguyễn
0cab7809eb [osx] Rewrote platform-osx and osxapp
platform-osx now vends a real NSView subclass, MGLMapView, that is readily embedded inside a Cocoa application for OS X. MGLMapView is backed by an NSOpenGLLayer for optimal performance and integration with other layer-backed views. It supports keyboard shortcuts and several gestures and hosts attribution, zooming, and rotation controls as subviews. osxapp is now a bona fide Cocoa application that embeds MGLMapView inside a XIB. osxapp has preferences and a share button for tight integration with custom styles.

Enabling asynchronous rendering would be more consistent with iOS but increases CPU usage so much, even when idle, that it isn’t worth any performance gain. The bigger issue is that VAOs aren’t being used.

make xpackage creates a static library similar to the one created by make ipackage. make clean cleans additional places where build output ends up.

The OS X minimum deployment target has been increased from 10.9 to 10.10. osxapp’s window has a full size content view, which requires 10.10. Lightweight generics require iOS 9+ and OS X 10.11 regardless, because it was only in that release that Foundation collection classes started adopting lightweight generics.

Shuffled files around and refactored annotations so that iOS and OS X share a good chunk of the annotations code, which now takes advantage of polymorphism. MGLMapView can now display annotations but cannot yet select them. In osxapp, a long press drops a pin, and so does the map view’s context menu.

Annotations have NSPopovers as callouts, and their view controllers can be customized. Annotation image alignment rects are respected for hit testing purposes and for positioning the callout anchor. Callouts in osxapp demonstrate the use of bindings to keep callouts in sync with underlying model objects.
2015-12-13 17:17:35 -08:00
Minh Nguyễn
b59f087ea8 [ios] Sort candidate annotations by proximity to tap
If you tap near a tight cluster of annotations, the annotation directly beneath your finger should be selected first. Previously, the annotations within the query bounds would be selected in order from oldest to newest, which was counterintuitive. The new behavior does sometimes make it more difficult to cycle through the entire cluster, but the previous behavior often got in the way anyways, as your finger would wind up atop a callout view for an annotation farther south.

Also updated the changelog.
2015-12-13 16:37:30 -08:00
Minh Nguyễn
d3275aa43c [ios] Refined annotation selection
Decreased hit test padding for annotation selection, since the query no longer depends on it. Fixed an assertion failure when selecting an annotation while the user dot is selected. Fixed an issue where selecting a selected user dot deselected it. Fixed an issue where the user dot’s callout positioning rect was off-center and a little too high.
2015-12-13 16:37:29 -08:00
Minh Nguyễn
a36054ee6b [ios] Refactored MGLMapView annotations
MGLMapView now maps “annotation tags” (Cocoa-speak for numeric annotation IDs) to context objects that pair annotations with their identifiers. Previously, MGLMapView mapped the annotation objects themselves to context objects that contained annotation IDs, but this caused most operations involving annotations to be rather expensive: since mbgl tracks annotations by ID, most of the time you know the ID and need either the annotation or some piece of metadata about it.

Along for the ride, geographic methods and support for alignment rect insets on annotation images have been ported from #3135 for OS X. Hit testing now works much like in #3135, with the exception that UIKit doesn’t support hit testing based on pixel opacity. -convertRect:toLatLngBoundsFromView: returns a world-spanning bounds when the world is wrapping.

Fixes #3159.
2015-12-13 16:37:29 -08:00
Adam Hunter
095a8be300 Implementation of flyTo. 2015-12-09 17:14:22 -08:00
Justin R. Miller
7beb051c26 Merge branch 'release-ios-v3.0.1' 2015-12-07 13:03:26 -08:00
Justin R. Miller
8fb141a3e4 bump build for ios-v3.0.1 (no symbols) 2015-12-07 12:21:22 -08:00
Justin R. Miller
860138dd38 record app fg/bg/inactive state in telemetry 2015-12-04 08:39:02 -08:00
Justin R. Miller
435cd9ea9e fixes #3113: bring in MGLMapView via +load for Interface Builder 2015-12-03 15:51:56 -08:00
Justin R. Miller
6b4e8bac6d fixes #3113: bring in MGLMapView via +load for Interface Builder 2015-12-03 15:43:53 -08:00
Justin R. Miller
0184b5ba9f bump iOS version to 3.0.1-pre.1 2015-12-03 11:15:42 -08:00
Jason Wray
f67ceec8c2 [ios] fix CoreTelephony crash (by removing it)
Fix #3112, ref #2581
2015-12-03 11:13:28 -08:00
Justin R. Miller
e2921f7e7c refs #3112: cleanups around Core Telephony runtime
- don't do anything with CT in simulator
 - more direct use of dynamic selectors for clarity
2015-12-03 11:12:15 -08:00
Jason Wray
e5f136a16a [ios] fix CoreTelephony crash (by removing it)
Fix #3112, ref #2581
2015-12-02 20:00:59 -05:00
Justin R. Miller
43ca910f54 refs #3112: cleanups around Core Telephony runtime
- don't do anything with CT in simulator
 - more direct use of dynamic selectors for clarity
2015-12-02 13:33:37 -08:00
John Firebaugh
8afa14fa78 [core] Map::setSprite ⇢ Map::addAnnotationIcon
Fixes #3084
2015-12-01 15:10:28 -08:00