motion-splash 1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +19 -0
  3. data/Gemfile +4 -0
  4. data/README.md +75 -0
  5. data/Rakefile +1 -0
  6. data/lib/motion-splash.rb +37 -0
  7. data/lib/motion-splash/config.rb +53 -0
  8. data/lib/motion-splash/generator.rb +77 -0
  9. data/lib/motion-splash/splash_app_delegate.rb +6 -0
  10. data/motion-splash.gemspec +22 -0
  11. data/samples/sample-1/.gitignore +17 -0
  12. data/samples/sample-1/Gemfile +6 -0
  13. data/samples/sample-1/Rakefile +19 -0
  14. data/samples/sample-1/app/app_delegate.rb +8 -0
  15. data/samples/sample-1/app/layouts/splash_layout.rb +63 -0
  16. data/samples/sample-1/app/normal_view_controller.rb +6 -0
  17. data/samples/sample-1/app/splash_view_controller.rb +13 -0
  18. data/samples/sample-1/resources/Default-568h@2x.png +0 -0
  19. data/samples/sample-1/resources/Default-667h@2x.png +0 -0
  20. data/samples/sample-1/resources/Default-736h@3x.png +0 -0
  21. data/samples/sample-1/resources/Default.png +0 -0
  22. data/samples/sample-1/resources/Default@2x.png +0 -0
  23. data/samples/sample-1/resources/motionkit_logo.png +0 -0
  24. data/samples/sample-1/spec/main_spec.rb +9 -0
  25. data/samples/sample-2/.gitignore +17 -0
  26. data/samples/sample-2/Gemfile +5 -0
  27. data/samples/sample-2/Rakefile +20 -0
  28. data/samples/sample-2/app/app_delegate.rb +8 -0
  29. data/samples/sample-2/app/normal_view_controller.rb +6 -0
  30. data/samples/sample-2/app/splash_view_controller.rb +25 -0
  31. data/samples/sample-2/resources/Default-375h@2x.png +0 -0
  32. data/samples/sample-2/resources/Default-568h@2x.png +0 -0
  33. data/samples/sample-2/resources/Default-667h@2x.png +0 -0
  34. data/samples/sample-2/resources/Default-736h@3x.png +0 -0
  35. data/samples/sample-2/resources/Default.png +0 -0
  36. data/samples/sample-2/resources/Default@2x.png +0 -0
  37. data/samples/sample-2/spec/main_spec.rb +9 -0
  38. metadata +112 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: a96fcb3e6d8704765c0db3f4c3925b4bc87cf234
4
+ data.tar.gz: e0778229ce1b9c25a065aa9b6c101dc21293fe9b
5
+ SHA512:
6
+ metadata.gz: ecd1081838f66d5c62991ed384f15ebf28a88bbf5cb75d580852682565168368402d110101005b7a6ce51a243cf432e54d9590775b1c7b6898b09d949932e84d
7
+ data.tar.gz: 6e87e52fca3f9b0356d53d9150ceefaec24e869e85bc7d733ccaaa755fe984ab2be37f3efdf9bf2b55ae471e6807bd49aa28dc0d1709e6ca24e06e0d8c1ae65b
data/.gitignore ADDED
@@ -0,0 +1,19 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ spec_app/build/*
19
+ .DS_Store
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in motion-splash.gemspec
4
+ gemspec
data/README.md ADDED
@@ -0,0 +1,75 @@
1
+ # Motion-Splash
2
+
3
+ Create all your splash images from any UIViewController using whatever method you like to style it.
4
+
5
+ With Xcode 6 and iOS 8 came the ability to create your launch images from a XIB or storyboard file. This is a huge gain over manually creating every image in all the available resolutions.
6
+
7
+ But as a RubyMotion developer, I try to stay away as much as possible from the Xcode environment... I present you `Motion-Splash`
8
+
9
+ #Installation
10
+ ```
11
+ gem install motion-splash
12
+
13
+ # or in Gemfile
14
+ gem 'motion-splash'
15
+ ```
16
+
17
+ #How to use it
18
+ Require `motion-splash` in your Rakefile and add `MotionSplash.setup(app)` in your project setup block.
19
+
20
+ This will add the `rake splash` task to your project.
21
+ When running the task, the app will instantiate your `UIViewController` for every configured resolution/scale, present it over its own `UIWindow` and take a screenshot when you tell it to.
22
+
23
+ The only requirement is that your `UIViewController` instance responds to `#splash_generator=` and that you call `#take_snapshot` on the generator object whenever the controller's view is ready. Calling this method will save a snapshot to disk and continue with the next available resolution or exit if finished.
24
+
25
+ ```ruby
26
+ class SplashController < UIViewController
27
+ attr_writer :splash_generator
28
+
29
+ def loadView
30
+ @layout = SplashLayout.new
31
+ self.view = @layout.view
32
+ end
33
+
34
+ def viewDidAppear(animated)
35
+ super
36
+ @splash_generator.take_snapshot
37
+ end
38
+ end
39
+ ```
40
+
41
+ **NOTE: the view controller's view frame is being manually adjusted after it has been created, so be sure to adjust the subviews' frames either by using AutoLayout or manually changing their frames in `viewWillLayoutSubviews`**
42
+
43
+ #Configuration
44
+ You can configure `MotionSplash` passing a block to `MotionSplash.setup`
45
+ ```ruby
46
+ MotionSplash.setup(app) do |c|
47
+ c.controller_class = "MyCustomSplashController"
48
+ c.exclude_scales = [1, 3]
49
+ end
50
+ ```
51
+
52
+ Avaiable options are:
53
+ * **controller_class**: Your splash controller class name (String). Defaults to "SplashController"
54
+ * **images_dir**: Absolute path to the directory where images should be saved. Defaults to the app's resources dir
55
+ * **image_name**: Launch image name. Defaults to "Default"
56
+ * **app_delegate_file**: Absolute path to the app's app_delegate file. Defaults to `app/app_delegate.rb`
57
+ * **sizes**: An array of all the needed sizes. Format of each entry must be [size, scale]. Defaults to `[[[320, 480], 1], [[320, 480], 2], [[320, 568], 2], [[375, 667], 2], [[414, 736], 3]]`
58
+ * **exclude_scales**: Array of scales that are not needed. Defaults to an empty array.
59
+ * **exclude_sizes**: Array of sizes that are not needed (ie [320, 480]). Defaults to an empty array.
60
+ * **custom_sizes**: Array with custom sizes. Format of each entry must be [size, scale]. Defaults to empty array.
61
+
62
+ #Samples
63
+ Check out the two sample apps:
64
+
65
+ * On the first one we create splash images using MotionKit and AutoLayout
66
+ * On the second one, we use an `UINavigationController` styled through the app's `UIAppearence`.
67
+
68
+ ![Sample 1](https://raw.github.com/ijpiantanida/motion-splash/master/samples/sample-1/resources/Default.png)
69
+ ![Sample 2](https://raw.github.com/ijpiantanida/motion-splash/master/samples/sample-2/resources/Default.png)
70
+
71
+ #How does it work?
72
+ When running the `rake splash` task, your `AppDelegate#application:didFinishLaunchingWithOptions:` will be overwritten with a custom implementation.
73
+
74
+ For every enabled size, a `UIWindow` is created with the appropiate frame size and setted as keyAndVisible. After your view controller is presented, you should call `#take_snapshot` (usually within `#viewDidAppear`) and an image will be created drawing the `UIWindow` with `#drawViewHierarchyInRect`. Using `UIWindow` allows us to make crazy thinks like using `UIVisualEffectView`
75
+
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,37 @@
1
+ require 'motion-splash/config.rb'
2
+
3
+ class MotionSplash
4
+ def self.generate!
5
+ @should_generate = true
6
+ end
7
+
8
+ def self.should_generate?
9
+ @should_generate
10
+ end
11
+
12
+ def self.setup(app)
13
+ config = Config.new(app)
14
+ yield(config) if block_given?
15
+ config.finish
16
+
17
+ splash_delegate = File.join(File.dirname(__FILE__), 'motion-splash/splash_app_delegate.rb')
18
+
19
+ if MotionSplash.should_generate?
20
+ app.files << File.join(File.dirname(__FILE__), 'motion-splash/generator.rb')
21
+ app.files << File.join(File.dirname(__FILE__), 'motion-splash/config.rb')
22
+ app.files << splash_delegate
23
+
24
+ system("touch \"#{splash_delegate}\"")
25
+ else
26
+ if File.mtime(splash_delegate) >= File.mtime(config.app_delegate_file)
27
+ system("touch \"#{config.app_delegate_file}\"")
28
+ end
29
+ end
30
+ end
31
+ end
32
+
33
+ desc "Creates splash images"
34
+ task 'splash' do
35
+ MotionSplash.generate!
36
+ Rake::Task["simulator"].invoke
37
+ end
@@ -0,0 +1,53 @@
1
+ class MotionSplash
2
+ class Config
3
+ def initialize(app = nil)
4
+ @app = app
5
+ @properties_set = []
6
+ end
7
+
8
+ def info_plist
9
+ @info_plist ||= begin
10
+ if @app
11
+ @app.info_plist
12
+ else
13
+ NSBundle.mainBundle.infoDictionary
14
+ end
15
+ rescue
16
+ {}
17
+ end
18
+ end
19
+
20
+ PROPERTIES = {
21
+ controller_class: "SplashController",
22
+ images_dir: File.join(Dir.pwd,"resources"),
23
+ app_delegate_file: File.join(Dir.pwd, "app", "app_delegate.rb"),
24
+ sizes: [[[320, 480], 1], [[320, 480], 2], [[320, 568], 2], [[375, 667], 2], [[414, 736], 3]],
25
+ image_name: "Default",
26
+ exclude_scales: [],
27
+ exclude_sizes: [],
28
+ custom_sizes: []
29
+ }
30
+
31
+ def prefix
32
+ "_splash_"
33
+ end
34
+
35
+ PROPERTIES.keys.each do |property|
36
+ define_method("#{property}=") do |value|
37
+ info_plist["#{prefix}#{property}"] = value
38
+ @properties_set << property
39
+ end
40
+
41
+ define_method(property) do
42
+ info_plist["#{prefix}#{property}"]
43
+ end
44
+ end
45
+
46
+ def finish
47
+ (PROPERTIES.keys - @properties_set.dup).each do |property|
48
+ default_value = PROPERTIES[property]
49
+ info_plist["#{prefix}#{property}"] = default_value
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,77 @@
1
+ class MotionSplash
2
+ class Generator
3
+ def self.generate_snapshots
4
+ self.new.start
5
+ end
6
+
7
+ def initialize
8
+ @config = Config.new
9
+ @current_index = 0
10
+ end
11
+
12
+ def start
13
+ setup_next_size
14
+ end
15
+
16
+ def setup_next_size
17
+ exit if @current_index >= enabled_sizes.size
18
+ size, scale = enabled_sizes[@current_index]
19
+ setup_for(size, scale)
20
+ end
21
+
22
+ def setup_for(size, scale)
23
+ puts "Generating image for #{size}@#{scale}x"
24
+ controller_class = Kernel.const_get(@config.controller_class)
25
+ splash_controller = controller_class.alloc.initWithNibName(nil, bundle: nil)
26
+ splash_controller.splash_generator = self
27
+
28
+ @window = UIWindow.alloc.initWithFrame([[0,0], size])
29
+ @window.rootViewController = splash_controller
30
+ @window.makeKeyAndVisible
31
+ splash_controller.view.frame = [[0, 0], size]
32
+ end
33
+
34
+ def take_snapshot
35
+ size, scale = enabled_sizes[@current_index]
36
+ image = create_image_for(scale, @window)
37
+ save_image(image, scale, size)
38
+ @current_index += 1
39
+ setup_next_size
40
+ end
41
+
42
+ def save_image(img, scale, size)
43
+ fileManager = NSFileManager.defaultManager
44
+ image_data = UIImagePNGRepresentation(img)
45
+ image_name = name_for(scale, size)
46
+ image_name = "#{@config.images_dir}/#{image_name}.png"
47
+ fileManager.createFileAtPath(image_name, contents: image_data, attributes: nil)
48
+ end
49
+
50
+ def create_image_for(scale, view)
51
+ UIGraphicsBeginImageContextWithOptions(view.bounds.size, true, scale)
52
+ view.drawViewHierarchyInRect(view.bounds, afterScreenUpdates: true)
53
+ img = UIGraphicsGetImageFromCurrentImageContext()
54
+ UIGraphicsEndImageContext()
55
+ img
56
+ end
57
+
58
+ def enabled_sizes
59
+ @enabled_sizes ||= @config.sizes.reject do |size, scale|
60
+ @config.exclude_sizes.include?(size) ||
61
+ @config.exclude_scales.include?(scale)
62
+ end + @config.custom_sizes
63
+ end
64
+
65
+ def name_for(scale, size)
66
+ case scale.to_i
67
+ when 2
68
+ size_suffix = size.last == 480 ? "" : "-#{size.last.to_i}h"
69
+ "#{@config.image_name}#{size_suffix}@2x"
70
+ when 3
71
+ "#{@config.image_name}-#{size.last.to_i}h@3x"
72
+ else
73
+ @config.image_name
74
+ end
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,6 @@
1
+ class AppDelegate
2
+ def application(application, didFinishLaunchingWithOptions:launchOptions)
3
+ MotionSplash::Generator.generate_snapshots
4
+ true
5
+ end
6
+ end
@@ -0,0 +1,22 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "motion-splash"
7
+ spec.version = "1.0"
8
+ spec.authors = ["Ignacio Piantanida"]
9
+ spec.email = ["ijpiantanida@gmail.com"]
10
+ spec.description = "Create all your splash images from any UIViewController using whatever method you like to style it.\nWith Xcode 6 and iOS 8 came the ability to create your launch images from a XIB or storyboard file. This is a huge gain over manually creating every image in all the available resolutions.\nBut as a RubyMotion developer, I try to stay away as much as possible from the Xcode environment... I present you Motion-Splash"
11
+ spec.summary = "Create all your splash images from any UIViewController using whatever method you like to style it"
12
+ spec.homepage = "https://github.com/ijpiantanida/motion-splash"
13
+ spec.license = "MIT"
14
+
15
+ spec.files = `git ls-files`.split($/)
16
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
17
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
18
+ spec.require_paths = ["lib"]
19
+
20
+ spec.add_development_dependency "bundler", "~> 1.3"
21
+ spec.add_development_dependency "rake"
22
+ end
@@ -0,0 +1,17 @@
1
+ .repl_history
2
+ build
3
+ tags
4
+ app/pixate_code.rb
5
+ resources/*.nib
6
+ resources/*.momd
7
+ resources/*.storyboardc
8
+ .DS_Store
9
+ nbproject
10
+ .redcar
11
+ #*#
12
+ *~
13
+ *.sw[po]
14
+ .eprj
15
+ .sass-cache
16
+ .idea
17
+ .dat*.*
@@ -0,0 +1,6 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'rake'
4
+ # Add your dependencies here:
5
+ gem 'motion-splash', :path => "../../"
6
+ gem 'motion-kit'
@@ -0,0 +1,19 @@
1
+ # -*- coding: utf-8 -*-
2
+ $:.unshift("/Library/RubyMotion/lib")
3
+ require 'motion/project/template/ios'
4
+
5
+ begin
6
+ require 'motion-splash'
7
+ require 'bundler'
8
+ Bundler.require
9
+ rescue LoadError
10
+ end
11
+
12
+ Motion::Project::App.setup do |app|
13
+ # Use `rake config' to see complete project settings.
14
+ app.name = 'sample-1'
15
+
16
+ MotionSplash.setup(app) do |c|
17
+ #c.exclude_scales = [1]
18
+ end
19
+ end
@@ -0,0 +1,8 @@
1
+ class AppDelegate
2
+ def application(application, didFinishLaunchingWithOptions:launchOptions)
3
+ @window = UIWindow.alloc.initWithFrame(UIScreen.mainScreen.bounds)
4
+ @window.rootViewController = NormalViewController.alloc.init
5
+ @window.makeKeyAndVisible
6
+ true
7
+ end
8
+ end
@@ -0,0 +1,63 @@
1
+ class SplashLayout < MK::Layout
2
+ def layout
3
+ root :splash do
4
+ add UILabel, :title
5
+ add UIView, :center_box do
6
+ add UIImageView, :icon
7
+ end
8
+ add UIView, :bottom_box
9
+ add UIVisualEffectView, :blurry_box
10
+ end
11
+ end
12
+
13
+ def splash_style
14
+ background_color UIColor.greenColor
15
+ end
16
+
17
+ def title_style
18
+ text 'Awesome App'
19
+ font UIFont.preferredFontForTextStyle(UIFontTextStyleHeadline)
20
+ constraints do
21
+ top.equals(30)
22
+ center_x.equals(:superview)
23
+ end
24
+ end
25
+
26
+ def center_box_style
27
+ background_color UIColor.redColor
28
+ constraints do
29
+ center.equals(:superview)
30
+ width.equals(:superview).times(0.9)
31
+ height.equals(:superview, :width).times(0.9)
32
+ end
33
+ end
34
+
35
+ def icon_style
36
+ image UIImage.imageNamed("motionkit_logo")
37
+ constraints do
38
+ center.equals(:superview)
39
+ size.is <= :superview
40
+ height(:scale)
41
+ end
42
+ end
43
+
44
+ def bottom_box_style
45
+ background_color UIColor.blueColor
46
+ constraints do
47
+ center_x.equals(:superview)
48
+ width.equals(:center_box)
49
+ height.equals(40)
50
+ bottom.equals(:superview).minus(15)
51
+ end
52
+ end
53
+
54
+ def blurry_box_style
55
+ effect UIBlurEffect.effectWithStyle(UIBlurEffectStyleLight)
56
+ constraints do
57
+ center_x.equals(:bottom_box)
58
+ width.equals(:superview)
59
+ height.equals(:bottom_box).plus(60)
60
+ bottom.equals(:superview)
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,6 @@
1
+ class NormalViewController < UIViewController
2
+ def viewDidLoad
3
+ super
4
+ self.view.backgroundColor = UIColor.redColor
5
+ end
6
+ end
@@ -0,0 +1,13 @@
1
+ class SplashController < UIViewController
2
+ attr_writer :splash_generator
3
+
4
+ def loadView
5
+ @layout = SplashLayout.new
6
+ self.view = @layout.view
7
+ end
8
+
9
+ def viewDidAppear(animated)
10
+ super
11
+ @splash_generator.take_snapshot
12
+ end
13
+ end
@@ -0,0 +1,9 @@
1
+ describe "Application 'sample-1'" do
2
+ before do
3
+ @app = UIApplication.sharedApplication
4
+ end
5
+
6
+ it "has one window" do
7
+ @app.windows.size.should == 1
8
+ end
9
+ end
@@ -0,0 +1,17 @@
1
+ .repl_history
2
+ build
3
+ tags
4
+ app/pixate_code.rb
5
+ resources/*.nib
6
+ resources/*.momd
7
+ resources/*.storyboardc
8
+ .DS_Store
9
+ nbproject
10
+ .redcar
11
+ #*#
12
+ *~
13
+ *.sw[po]
14
+ .eprj
15
+ .sass-cache
16
+ .idea
17
+ .dat*.*
@@ -0,0 +1,5 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'rake'
4
+ # Add your dependencies here:
5
+ gem 'motion-splash', :path => "../../"
@@ -0,0 +1,20 @@
1
+ # -*- coding: utf-8 -*-
2
+ $:.unshift("/Library/RubyMotion/lib")
3
+ require 'motion/project/template/ios'
4
+
5
+ begin
6
+ require 'motion-splash'
7
+ require 'bundler'
8
+ Bundler.require
9
+ rescue LoadError
10
+ end
11
+
12
+ Motion::Project::App.setup do |app|
13
+ # Use `rake config' to see complete project settings.
14
+ app.name = 'sample-2'
15
+
16
+ MotionSplash.setup(app) do |c|
17
+ c.controller_class = "CustomSplashViewController"
18
+ c.custom_sizes = [[[667, 375], 2]]
19
+ end
20
+ end
@@ -0,0 +1,8 @@
1
+ class AppDelegate
2
+ def application(application, didFinishLaunchingWithOptions:launchOptions)
3
+ @window = UIWindow.alloc.initWithFrame(UIScreen.mainScreen.bounds)
4
+ @window.rootViewController = NormalViewController.alloc.init
5
+ @window.makeKeyAndVisible
6
+ true
7
+ end
8
+ end
@@ -0,0 +1,6 @@
1
+ class NormalViewController < UIViewController
2
+ def viewDidLoad
3
+ super
4
+ self.view.backgroundColor = UIColor.redColor
5
+ end
6
+ end
@@ -0,0 +1,25 @@
1
+ class CustomSplashViewController < UINavigationController
2
+ attr_writer :splash_generator
3
+
4
+ def viewDidLoad
5
+ super
6
+ UINavigationBar.appearance.barTintColor = UIColor.colorWithRed(0.28, green: 0.46, blue: 0.61, alpha: 1)
7
+
8
+ controller = SplashController.alloc.init
9
+ controller.splash_generator = @splash_generator
10
+ self.setViewControllers([controller], animated: false)
11
+ end
12
+ end
13
+
14
+ class SplashController < UIViewController
15
+ attr_accessor :splash_generator
16
+
17
+ def viewDidLoad
18
+ self.view.backgroundColor = UIColor.whiteColor
19
+ end
20
+
21
+ def viewDidAppear(animated)
22
+ super
23
+ @splash_generator.take_snapshot
24
+ end
25
+ end
@@ -0,0 +1,9 @@
1
+ describe "Application 'sample-1'" do
2
+ before do
3
+ @app = UIApplication.sharedApplication
4
+ end
5
+
6
+ it "has one window" do
7
+ @app.windows.size.should == 1
8
+ end
9
+ end
metadata ADDED
@@ -0,0 +1,112 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: motion-splash
3
+ version: !ruby/object:Gem::Version
4
+ version: '1.0'
5
+ platform: ruby
6
+ authors:
7
+ - Ignacio Piantanida
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-09-29 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '1.3'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ description: |-
42
+ Create all your splash images from any UIViewController using whatever method you like to style it.
43
+ With Xcode 6 and iOS 8 came the ability to create your launch images from a XIB or storyboard file. This is a huge gain over manually creating every image in all the available resolutions.
44
+ But as a RubyMotion developer, I try to stay away as much as possible from the Xcode environment... I present you Motion-Splash
45
+ email:
46
+ - ijpiantanida@gmail.com
47
+ executables: []
48
+ extensions: []
49
+ extra_rdoc_files: []
50
+ files:
51
+ - .gitignore
52
+ - Gemfile
53
+ - README.md
54
+ - Rakefile
55
+ - lib/motion-splash.rb
56
+ - lib/motion-splash/config.rb
57
+ - lib/motion-splash/generator.rb
58
+ - lib/motion-splash/splash_app_delegate.rb
59
+ - motion-splash.gemspec
60
+ - samples/sample-1/.gitignore
61
+ - samples/sample-1/Gemfile
62
+ - samples/sample-1/Rakefile
63
+ - samples/sample-1/app/app_delegate.rb
64
+ - samples/sample-1/app/layouts/splash_layout.rb
65
+ - samples/sample-1/app/normal_view_controller.rb
66
+ - samples/sample-1/app/splash_view_controller.rb
67
+ - samples/sample-1/resources/Default-568h@2x.png
68
+ - samples/sample-1/resources/Default-667h@2x.png
69
+ - samples/sample-1/resources/Default-736h@3x.png
70
+ - samples/sample-1/resources/Default.png
71
+ - samples/sample-1/resources/Default@2x.png
72
+ - samples/sample-1/resources/motionkit_logo.png
73
+ - samples/sample-1/spec/main_spec.rb
74
+ - samples/sample-2/.gitignore
75
+ - samples/sample-2/Gemfile
76
+ - samples/sample-2/Rakefile
77
+ - samples/sample-2/app/app_delegate.rb
78
+ - samples/sample-2/app/normal_view_controller.rb
79
+ - samples/sample-2/app/splash_view_controller.rb
80
+ - samples/sample-2/resources/Default-375h@2x.png
81
+ - samples/sample-2/resources/Default-568h@2x.png
82
+ - samples/sample-2/resources/Default-667h@2x.png
83
+ - samples/sample-2/resources/Default-736h@3x.png
84
+ - samples/sample-2/resources/Default.png
85
+ - samples/sample-2/resources/Default@2x.png
86
+ - samples/sample-2/spec/main_spec.rb
87
+ homepage: https://github.com/ijpiantanida/motion-splash
88
+ licenses:
89
+ - MIT
90
+ metadata: {}
91
+ post_install_message:
92
+ rdoc_options: []
93
+ require_paths:
94
+ - lib
95
+ required_ruby_version: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - '>='
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
100
+ required_rubygems_version: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - '>='
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ requirements: []
106
+ rubyforge_project:
107
+ rubygems_version: 2.1.5
108
+ signing_key:
109
+ specification_version: 4
110
+ summary: Create all your splash images from any UIViewController using whatever method
111
+ you like to style it
112
+ test_files: []