Skip to content

Releases: jamonholmgren/ProMotion

Version 2.0.1

04 Sep 17:31
Compare
Choose a tag to compare
  • Now works with RubyMotion 2.32
  • Multiple minor bugfixes (read the commit history if you're really interested)

Version 2.0.0

03 Aug 01:38
Compare
Choose a tag to compare

Overview: In ProMotion 2.0, we removed deprecated APIs, refactored and cleaned up a ton of code, pulled PushNotification and MapScreen into their own gems, and simplified the API. It now builds 55% faster and is 20%+ lighter.

Follow our Migration Guide for a painless upgrade.

API changes

  1. Extracted PM::MapScreen into ProMotion-map
  2. Extracted PM::PushNotification into ProMotion-push
  3. You can't pass a UIImage or UIView into a title anymore. Instead, pass a string into title_image (it'll fetch the image for you and create a UIImageView) or pass any arbitrary view into title_view. Now, title only takes a string title.
  4. on_create has been renamed screen_init to avoid confusion with Android's onCreate method. It may be reintroduced in a future version of ProMotion as an alias of onCreate. We recommend using on_init instead.
  5. set_nav_bar_right_button and set_nav_bar_left_button have been removed. Use set_nav_bar_button :right and :left instead.
  6. Added NSString#to_url and NSURL#to_url helper methods to help clean up a lot of code.
  7. present_modal_view_controller now takes two arguments: the ViewController and an argument hash. You shouldn't have been using it in the first place.
  8. open_in_tab now properly opens screens in tabs that didn't have a nav_bar. This is probably the closest thing to a new feature in PM 2.0 that we have, even though it should have worked before.
  9. Cell hash arbitrary values are no longer applied directly to the cell. Instead, use the style: hash to apply arbitrary attributes. Example here.
  10. Removed cell hash :subviews attribute. Instead, subclass PM::TableViewCell and add your own subviews there.
  11. Actually, there is one new feature. It's called longpressable. By adding longpressable at the top of your PM::TableScreen and then supplying a long_press_action: in your cell hash, you can implement a different action for long presses on table cells.
  12. We no longer insert the cell hash into the arguments hash passed into your cell tap action. If you need that data, pass it in manually.
  13. Removed add_element, add_view, remove_element, remove_view aliases for add and remove.
  14. on_load now fires on viewDidLoad instead of loadView. Added a new load_view hook for that method & you can set your own view in there. If you don't implement load_view, one will be created for you (per Apple's recommendations). This change shouldn't change much in your app except that if you're setting self.view = something, you should do it in load_view.

Internal changes:

  1. Removed motion-require. ProMotion now relies entirely on RubyMotion's built-in dependency detector.
  2. Removed rake spec:unit, rake spec:func, rake spec:single filename. We don't really use these for development anymore.
  3. Moved many files around into a more logical, simpler structure.
  4. Removed PM::Conversions. The only helper we were using was the objective_c_method_name method, and that was only used in PM::Styling. So we moved it there.
  5. New module, PM::NavBarModule. Moved any navigation controller methods into this module, cleaning up the PM::ScreenModule quite a bit.
  6. Lots of code refactoring -- CodeClimate went from 2.47 to 3.35 GPA.
  7. Much cleaner open code!
  8. Converted several slow functional tests into fast unit tests with the same coverage.

Version 2.0.0.rc4

03 Jul 19:12
Compare
Choose a tag to compare
Version 2.0.0.rc4 Pre-release
Pre-release
  • Bugfixes

Version 2.0.0.rc3

27 Jun 18:41
Compare
Choose a tag to compare
Version 2.0.0.rc3 Pre-release
Pre-release
  • Bugfixes

Version 2.0.0.rc1

22 Jun 06:47
Compare
Choose a tag to compare
Version 2.0.0.rc1 Pre-release
Pre-release

Version 2.0.0.rc1

Overview: In ProMotion 2.0, we removed deprecated APIs, refactored and cleaned up a ton of code, pulled PushNotification and MapScreen into their own gems, and simplified the API. It now builds 55% faster and is 20%+ lighter.

Check out our PM 2.0 Migration Guide.

API changes

  1. Extracted PM::MapScreen into ProMotion-map
  2. Extracted PM::PushNotification into ProMotion-push
  3. You can't pass a UIImage or UIView into a title anymore. Instead, pass a string into title_image (it'll fetch the image for you and create a UIImageView) or pass any arbitrary view into title_view. Now, title only takes a string title.
  4. on_create has been renamed screen_init to avoid confusion with Android's onCreate method. It may be reintroduced in a future version of ProMotion as an alias of onCreate. We recommend using on_init instead.
  5. set_nav_bar_right_button and set_nav_bar_left_button have been removed. Use set_nav_bar_button :right and :left instead.
  6. Added NSString#to_url and NSURL#to_url helper methods to help clean up a lot of code.
  7. present_modal_view_controller now takes two arguments: the ViewController and an argument hash. You shouldn't have been using it in the first place.
  8. open_in_tab now properly opens screens in tabs that didn't have a nav_bar. This is probably the closest thing to a new feature in PM 2.0 that we have, even though it should have worked before.
  9. Cell hash arbitrary values are no longer applied directly to the cell. Instead, use the style: hash to apply arbitrary attributes. Example here.
  10. Removed cell hash :subviews attribute. Instead, subclass PM::TableViewCell and add your own subviews there.
  11. Actually, there is one new feature. It's called longpressable. By adding longpressable at the top of your PM::TableScreen and then supplying a long_press_action: in your cell hash, you can implement a different action for long presses on table cells.
  12. We no longer insert the cell hash into the arguments hash passed into your cell tap action. If you need that data, pass it in manually.
  13. Removed add_element, add_view, remove_element, remove_view aliases for add and remove.
  14. on_load now fires on viewDidLoad instead of loadView. Added a new load_view hook for that method & you can set your own view in there. If you don't implement load_view, one will be created for you (per Apple's recommendations). This change shouldn't change much in your app except that if you're setting self.view = something, you should do it in load_view.

Internal changes:

  1. Removed motion-require. ProMotion now relies entirely on RubyMotion's built-in dependency detector.
  2. Removed rake spec:unit, rake spec:func, rake spec:single filename. We don't really use these for development anymore.
  3. Moved many files around into a more logical, simpler structure.
  4. Removed PM::Conversions. The only helper we were using was the objective_c_method_name method, and that was only used in PM::Styling. So we moved it there.
  5. New module, PM::NavBarModule. Moved any navigation controller methods into this module, cleaning up the PM::ScreenModule quite a bit.
  6. Lots of code refactoring -- CodeClimate went from 2.47 to 3.42 GPA.
  7. Much cleaner open code!
  8. Converted several slow functional tests into fast unit tests with the same coverage.

Version 1.2.1

22 Jun 06:14
Compare
Choose a tag to compare
  • Minor bugfixes
  • Updated dependency versions

Version 1.2.0

16 Mar 00:04
Compare
Choose a tag to compare
  1. Now uses motion-require for better compatibility with other libraries 6046dd7f4
  2. SplitScreen: New option swipe: allows you to specify if a splitscreen master screen can be opened with a swipe. ffbb76caf
  3. FormotionScreen: Removed PM::FormotionScreen and the Formotion testing dependency. Use ProMotion-formotion instead.
  4. Styling: Added a content_width helper to PM::Styling (similar to content_height) 08a984815
  5. TableScreen: Removed SDWebImage in favor of similar but more reliable JDImageCache 59ed747e9
  6. Screen: Allow custom views (including images) for title setting #415

Version 1.1.2

11 Jan 17:41
Compare
Choose a tag to compare
  • Fixed a bug with PM::FormotionScreen where submit would not be bound after calling update_table_data. Thanks to @robertjwhitney for the patch.
  • Updated gem dependencies

Version 1.1.1

23 Dec 23:04
Compare
Choose a tag to compare

Bugfix: Correct git url for cloning default template (thanks to @joefiorini for the patch).

Version 1.1.0

03 Dec 15:58
Compare
Choose a tag to compare

What's New:

  • Added a ProMotion executable called promotion. You can type promotion new <myapp> and it will create a ProMotion-specific app. We will be adding more functionality in the future.
  • Can now pass a symbol to add, add_to, and set_attributes to call a method with that name to get styles.
  • Added button_title: to open_split_screen to customize the auto-generated button title
  • Updates to set_tab_bar_button
  • Added to PM::Delegate on_open_url(args = {}) where args contains :url, :source_app, and :annotation
  • Added to PM::Delegate tint_color to customize the application-wide tint color
  • Added to PM::MapScreen annotations the ability to set an image
  • Removed legacy navigation_controller references which were causing confusion.
  • Allowed setting a custom_view for bar_button_items.
  • Added will_begin_search and will_end_search callbacks to PM::TableScreen.
  • Added title_view and title_view_height to sections in PM::TableScreen.
  • Updated screenshots for iOS 7
  • Refactored code and lots of new passing tests