Browse Source

Implement basic startup tutorial using preliminary graphics

l10n is yet todo
Felix Paul Kühne 11 years ago
parent
commit
82a2ba235e
32 changed files with 958 additions and 16 deletions
  1. 22 11
      Resources/VLCEmptyLibraryView~ipad.xib
  2. 17 5
      Resources/VLCEmptyLibraryView~iphone.xib
  3. 31 0
      Resources/VLCFirstStepsFifthPageViewController.xib
  4. 49 0
      Resources/VLCFirstStepsFirstPageViewController.xib
  5. 52 0
      Resources/VLCFirstStepsFourthPageViewController.xib
  6. 44 0
      Resources/VLCFirstStepsSecondPageViewController.xib
  7. 52 0
      Resources/VLCFirstStepsSixthPageViewController.xib
  8. 52 0
      Resources/VLCFirstStepsThirdPageViewController.xib
  9. BIN
      Resources/cloudupload.png
  10. BIN
      Resources/en.lproj/Localizable.strings
  11. BIN
      Resources/iDeviceWiFiPC.png
  12. BIN
      Resources/ideviceConnectedToPC.png
  13. BIN
      Resources/playback.png
  14. BIN
      Resources/sidebar.png
  15. BIN
      Resources/wifiuploadsetup.png
  16. 20 0
      Sources/VLCFirstStepsFifthPageViewController.h
  17. 38 0
      Sources/VLCFirstStepsFifthPageViewController.m
  18. 24 0
      Sources/VLCFirstStepsFirstPageViewController.h
  19. 37 0
      Sources/VLCFirstStepsFirstPageViewController.m
  20. 20 0
      Sources/VLCFirstStepsFourthPageViewController.h
  21. 38 0
      Sources/VLCFirstStepsFourthPageViewController.m
  22. 20 0
      Sources/VLCFirstStepsSecondPageViewController.h
  23. 38 0
      Sources/VLCFirstStepsSecondPageViewController.m
  24. 22 0
      Sources/VLCFirstStepsSixthPageViewController.h
  25. 43 0
      Sources/VLCFirstStepsSixthPageViewController.m
  26. 20 0
      Sources/VLCFirstStepsThirdPageViewController.h
  27. 38 0
      Sources/VLCFirstStepsThirdPageViewController.m
  28. 17 0
      Sources/VLCFirstStepsViewController.h
  29. 136 0
      Sources/VLCFirstStepsViewController.m
  30. 3 0
      Sources/VLCPlaylistViewController.h
  31. 11 0
      Sources/VLCPlaylistViewController.m
  32. 114 0
      VLC for iOS.xcodeproj/project.pbxproj

+ 22 - 11
Resources/VLCEmptyLibraryView~ipad.xib

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="3.0" toolsVersion="5023" systemVersion="12F45" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="3.0" toolsVersion="5037" systemVersion="12F45" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none">
     <dependencies>
         <deployment defaultVersion="1552" identifier="iOS"/>
         <development version="5000" identifier="xcode"/>
@@ -20,15 +20,6 @@
                             <rect key="frame" x="142" y="26" width="128" height="128"/>
                             <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
                         </imageView>
-                        <label clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" textAlignment="center" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="113">
-                            <rect key="frame" x="66" y="242" width="280" height="192"/>
-                            <autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
-                            <color key="backgroundColor" red="0.1215686275" green="0.1215686275" blue="0.1215686275" alpha="1" colorSpace="calibratedRGB"/>
-                            <string key="text">For playback, use iTunes to synchronize files, check the VLC menu for available options or ask another application to open a file in VLC for iOS.</string>
-                            <fontDescription key="fontDescription" type="system" pointSize="17"/>
-                            <color key="textColor" white="0.71999999999999997" alpha="1" colorSpace="calibratedWhite"/>
-                            <nil key="highlightedColor"/>
-                        </label>
                         <label clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Empty Media Library" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="114">
                             <rect key="frame" x="66" y="191" width="280" height="21"/>
                             <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
@@ -41,6 +32,26 @@
                             <rect key="frame" x="188" y="319" width="37" height="37"/>
                             <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
                         </activityIndicatorView>
+                        <label clipsSubviews="YES" userInteractionEnabled="NO" contentMode="center" textAlignment="center" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="vqV-xO-9Ez">
+                            <rect key="frame" x="56" y="220" width="301" height="179"/>
+                            <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
+                            <color key="backgroundColor" red="0.1215686275" green="0.1215686275" blue="0.1215686275" alpha="1" colorSpace="calibratedRGB"/>
+                            <string key="text">For playback, you can stream media from a server on your local network, from the cloud or synchronize media to your device using iTunes, WiFi Upload or Cloud services.</string>
+                            <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                            <color key="textColor" white="0.71999999999999997" alpha="1" colorSpace="calibratedWhite"/>
+                            <nil key="highlightedColor"/>
+                        </label>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="A78-83-MhQ">
+                            <rect key="frame" x="143" y="398" width="126" height="42"/>
+                            <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
+                            <fontDescription key="fontDescription" type="system" pointSize="25"/>
+                            <state key="normal" title="Learn More">
+                                <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
+                            </state>
+                            <connections>
+                                <action selector="learnMore:" destination="112" eventType="touchUpInside" id="TQf-Oo-oTD"/>
+                            </connections>
+                        </button>
                     </subviews>
                     <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
                 </view>
@@ -50,7 +61,7 @@
             <connections>
                 <outlet property="activityIndicator" destination="122" id="123"/>
                 <outlet property="emptyLibraryLabel" destination="114" id="119"/>
-                <outlet property="emptyLibraryLongDescriptionLabel" destination="113" id="120"/>
+                <outlet property="emptyLibraryLongDescriptionLabel" destination="vqV-xO-9Ez" id="Grj-83-sAj"/>
             </connections>
         </view>
     </objects>

+ 17 - 5
Resources/VLCEmptyLibraryView~iphone.xib

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="5023" systemVersion="12F45" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="5037" systemVersion="12F45" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
     <dependencies>
         <deployment defaultVersion="1552" identifier="iOS"/>
         <development version="5000" identifier="xcode"/>
@@ -17,11 +17,11 @@
                     <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
                     <subviews>
                         <imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="AppIcon512x512.png" id="21">
-                            <rect key="frame" x="96" y="112" width="128" height="128"/>
+                            <rect key="frame" x="96" y="96" width="128" height="128"/>
                             <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
                         </imageView>
                         <label clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Empty Media Library" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="22">
-                            <rect key="frame" x="20" y="271" width="280" height="21"/>
+                            <rect key="frame" x="20" y="255" width="280" height="21"/>
                             <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
                             <color key="backgroundColor" red="0.1215686275" green="0.1215686275" blue="0.1215686275" alpha="1" colorSpace="calibratedRGB"/>
                             <fontDescription key="fontDescription" type="boldSystem" pointSize="17"/>
@@ -29,10 +29,10 @@
                             <nil key="highlightedColor"/>
                         </label>
                         <label clipsSubviews="YES" userInteractionEnabled="NO" contentMode="center" textAlignment="center" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="23">
-                            <rect key="frame" x="20" y="297" width="280" height="175"/>
+                            <rect key="frame" x="20" y="284" width="280" height="146"/>
                             <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
                             <color key="backgroundColor" red="0.1215686275" green="0.1215686275" blue="0.1215686275" alpha="1" colorSpace="calibratedRGB"/>
-                            <string key="text">For playback, use iTunes to synchronize files, check the VLC menu for available options or ask another application to open a file in VLC for iOS.</string>
+                            <string key="text">For playback, you can stream media from a server on your local network, from the cloud or synchronize media to your device using iTunes, WiFi Upload or Cloud services.</string>
                             <fontDescription key="fontDescription" type="system" pointSize="17"/>
                             <color key="textColor" white="0.71999999999999997" alpha="1" colorSpace="calibratedWhite"/>
                             <nil key="highlightedColor"/>
@@ -41,6 +41,17 @@
                             <rect key="frame" x="142" y="366" width="37" height="37"/>
                             <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
                         </activityIndicatorView>
+                        <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="18Y-dw-VoK">
+                            <rect key="frame" x="20" y="421" width="280" height="42"/>
+                            <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
+                            <fontDescription key="fontDescription" type="system" pointSize="25"/>
+                            <state key="normal" title="Learn More">
+                                <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
+                            </state>
+                            <connections>
+                                <action selector="learnMore:" destination="20" eventType="touchUpInside" id="Z4i-2X-Z3b"/>
+                            </connections>
+                        </button>
                     </subviews>
                     <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
                 </view>
@@ -51,6 +62,7 @@
                 <outlet property="activityIndicator" destination="30" id="31"/>
                 <outlet property="emptyLibraryLabel" destination="22" id="27"/>
                 <outlet property="emptyLibraryLongDescriptionLabel" destination="23" id="28"/>
+                <outlet property="learnMoreButton" destination="18Y-dw-VoK" id="GOw-a1-qSK"/>
             </connections>
         </view>
     </objects>

+ 31 - 0
Resources/VLCFirstStepsFifthPageViewController.xib

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="5037" systemVersion="12F45" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
+    <dependencies>
+        <deployment defaultVersion="1552" identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3733"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="VLCFirstStepsFifthViewController">
+            <connections>
+                <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
+            </connections>
+        </placeholder>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
+            <rect key="frame" x="0.0" y="0.0" width="320" height="442"/>
+            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+            <subviews>
+                <imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="playback.png" id="0ga-ni-wio">
+                    <rect key="frame" x="20" y="71" width="280" height="300"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
+                </imageView>
+            </subviews>
+            <color key="backgroundColor" white="0.12" alpha="1" colorSpace="calibratedWhite"/>
+            <simulatedStatusBarMetrics key="simulatedStatusBarMetrics"/>
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+        </view>
+    </objects>
+    <resources>
+        <image name="playback.png" width="497" height="521"/>
+    </resources>
+</document>

+ 49 - 0
Resources/VLCFirstStepsFirstPageViewController.xib

@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="5037" systemVersion="12F45" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
+    <dependencies>
+        <deployment defaultVersion="1552" identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3733"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="VLCFirstStepsPageOneViewController">
+            <connections>
+                <outlet property="subtitleLabel" destination="qwa-E6-Xqt" id="uNa-2x-dLS"/>
+                <outlet property="titleLabel" destination="9PV-SL-Vhc" id="Tk4-rY-AWt"/>
+                <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
+            </connections>
+        </placeholder>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
+            <rect key="frame" x="0.0" y="0.0" width="320" height="442"/>
+            <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" heightSizable="YES"/>
+            <subviews>
+                <label clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Welcome" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="9PV-SL-Vhc">
+                    <rect key="frame" x="20" y="266" width="280" height="30"/>
+                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
+                    <color key="backgroundColor" red="0.1215686275" green="0.1215686275" blue="0.1215686275" alpha="1" colorSpace="calibratedRGB"/>
+                    <fontDescription key="fontDescription" type="boldSystem" pointSize="25"/>
+                    <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                    <nil key="highlightedColor"/>
+                </label>
+                <label clipsSubviews="YES" userInteractionEnabled="NO" contentMode="center" text="First steps to Sync and Play your Media." textAlignment="center" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="qwa-E6-Xqt">
+                    <rect key="frame" x="20" y="304" width="280" height="118"/>
+                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
+                    <color key="backgroundColor" red="0.1215686275" green="0.1215686275" blue="0.1215686275" alpha="1" colorSpace="calibratedRGB"/>
+                    <fontDescription key="fontDescription" type="system" pointSize="25"/>
+                    <color key="textColor" white="0.71999999999999997" alpha="1" colorSpace="calibratedWhite"/>
+                    <nil key="highlightedColor"/>
+                </label>
+                <imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="AppIcon512x512.png" id="OP3-O6-gak">
+                    <rect key="frame" x="96" y="110" width="128" height="128"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
+                </imageView>
+            </subviews>
+            <color key="backgroundColor" white="0.12" alpha="1" colorSpace="calibratedWhite"/>
+            <simulatedStatusBarMetrics key="simulatedStatusBarMetrics"/>
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+        </view>
+    </objects>
+    <resources>
+        <image name="AppIcon512x512.png" width="512" height="512"/>
+    </resources>
+</document>

+ 52 - 0
Resources/VLCFirstStepsFourthPageViewController.xib

@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="5037" systemVersion="12F45" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
+    <dependencies>
+        <deployment defaultVersion="1552" identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3733"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="VLCFirstStepsFourthPageViewController">
+            <connections>
+                <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
+            </connections>
+        </placeholder>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
+            <rect key="frame" x="0.0" y="0.0" width="320" height="442"/>
+            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+            <subviews>
+                <label clipsSubviews="YES" userInteractionEnabled="NO" contentMode="top" text="Upload Your media to Google Drive or Dropbox." textAlignment="center" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" minimumFontSize="9" adjustsLetterSpacingToFitWidth="YES" id="kne-kQ-uVu">
+                    <rect key="frame" x="20" y="185" width="280" height="67"/>
+                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
+                    <color key="backgroundColor" red="0.1215686275" green="0.1215686275" blue="0.1215686275" alpha="1" colorSpace="calibratedRGB"/>
+                    <fontDescription key="fontDescription" type="system" pointSize="19"/>
+                    <color key="textColor" white="0.71999999999999997" alpha="1" colorSpace="calibratedWhite"/>
+                    <nil key="highlightedColor"/>
+                </label>
+                <imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="sidebar.png" id="9ku-om-rLn">
+                    <rect key="frame" x="20" y="288" width="79" height="125"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
+                </imageView>
+                <imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="cloudupload.png" id="8m2-22-qDa">
+                    <rect key="frame" x="20" y="56" width="280" height="140"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
+                </imageView>
+                <label clipsSubviews="YES" userInteractionEnabled="NO" contentMode="top" text="Open the sidebar to select Your Cloud provider and access Your media for downloading or streaming." textAlignment="center" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" minimumFontSize="9" adjustsLetterSpacingToFitWidth="YES" id="cEb-8k-t4u">
+                    <rect key="frame" x="115" y="260" width="184" height="182"/>
+                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
+                    <color key="backgroundColor" red="0.1215686275" green="0.1215686275" blue="0.1215686275" alpha="1" colorSpace="calibratedRGB"/>
+                    <fontDescription key="fontDescription" type="system" pointSize="18"/>
+                    <color key="textColor" white="0.71999999999999997" alpha="1" colorSpace="calibratedWhite"/>
+                    <nil key="highlightedColor"/>
+                </label>
+            </subviews>
+            <color key="backgroundColor" white="0.12" alpha="1" colorSpace="calibratedWhite"/>
+            <simulatedStatusBarMetrics key="simulatedStatusBarMetrics"/>
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+        </view>
+    </objects>
+    <resources>
+        <image name="cloudupload.png" width="547" height="205"/>
+        <image name="sidebar.png" width="155" height="246"/>
+    </resources>
+</document>

+ 44 - 0
Resources/VLCFirstStepsSecondPageViewController.xib

@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="5037" systemVersion="12F45" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
+    <dependencies>
+        <deployment defaultVersion="1552" identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3733"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="VLCFirstStepsSecondPageViewController">
+            <connections>
+                <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
+            </connections>
+        </placeholder>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
+            <rect key="frame" x="0.0" y="0.0" width="320" height="442"/>
+            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+            <subviews>
+                <label clipsSubviews="YES" userInteractionEnabled="NO" contentMode="top" textAlignment="center" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" adjustsLetterSpacingToFitWidth="YES" id="Ihj-9n-NF0">
+                    <rect key="frame" x="20" y="244" width="280" height="179"/>
+                    <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/>
+                    <color key="backgroundColor" red="0.1215686275" green="0.1215686275" blue="0.1215686275" alpha="1" colorSpace="calibratedRGB"/>
+                    <string key="text">Connect Your Device to Your Mac or PC using the cable.
+Open iTunes.
+Select Your device.
+Switch to the "Apps" tab, scroll down and look for VLC.
+Transfer your files.</string>
+                    <fontDescription key="fontDescription" type="system" pointSize="18"/>
+                    <color key="textColor" white="0.71999999999999997" alpha="1" colorSpace="calibratedWhite"/>
+                    <nil key="highlightedColor"/>
+                </label>
+                <imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ideviceConnectedToPC.png" id="06U-aS-gkj">
+                    <rect key="frame" x="20" y="93" width="280" height="140"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                </imageView>
+            </subviews>
+            <color key="backgroundColor" white="0.12" alpha="1" colorSpace="calibratedWhite"/>
+            <simulatedStatusBarMetrics key="simulatedStatusBarMetrics"/>
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+        </view>
+    </objects>
+    <resources>
+        <image name="ideviceConnectedToPC.png" width="429" height="251"/>
+    </resources>
+</document>

+ 52 - 0
Resources/VLCFirstStepsSixthPageViewController.xib

@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="5037" systemVersion="12F45" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
+    <dependencies>
+        <deployment defaultVersion="1552" identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3733"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="VLCFirstStepsSixthPageViewController">
+            <connections>
+                <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
+            </connections>
+        </placeholder>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
+            <rect key="frame" x="0.0" y="0.0" width="320" height="442"/>
+            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+            <subviews>
+                <label clipsSubviews="YES" userInteractionEnabled="NO" contentMode="center" textAlignment="center" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" minimumFontSize="13" adjustsLetterSpacingToFitWidth="YES" id="RNO-mo-7OT">
+                    <rect key="frame" x="20" y="207" width="280" height="165"/>
+                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
+                    <color key="backgroundColor" red="0.1215686275" green="0.1215686275" blue="0.1215686275" alpha="1" colorSpace="calibratedRGB"/>
+                    <string key="text">VLC for iOS is free and open source software developed by volunteers.
+We hope you enjoy it.</string>
+                    <fontDescription key="fontDescription" type="system" pointSize="25"/>
+                    <color key="textColor" white="0.71999999999999997" alpha="1" colorSpace="calibratedWhite"/>
+                    <nil key="highlightedColor"/>
+                </label>
+                <imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="AppIcon512x512.png" id="TKA-c3-IgQ">
+                    <rect key="frame" x="96" y="77" width="128" height="128"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
+                </imageView>
+                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="IqZ-6V-1cm">
+                    <rect key="frame" x="20" y="380" width="280" height="42"/>
+                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
+                    <fontDescription key="fontDescription" type="system" pointSize="25"/>
+                    <state key="normal" title="Learn More">
+                        <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
+                    </state>
+                    <connections>
+                        <action selector="learnMore:" destination="-1" eventType="touchUpInside" id="PUv-99-Dye"/>
+                    </connections>
+                </button>
+            </subviews>
+            <color key="backgroundColor" white="0.12" alpha="1" colorSpace="calibratedWhite"/>
+            <simulatedStatusBarMetrics key="simulatedStatusBarMetrics"/>
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+        </view>
+    </objects>
+    <resources>
+        <image name="AppIcon512x512.png" width="512" height="512"/>
+    </resources>
+</document>

+ 52 - 0
Resources/VLCFirstStepsThirdPageViewController.xib

@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="5037" systemVersion="12F45" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
+    <dependencies>
+        <deployment defaultVersion="1552" identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3733"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="VLCFirstStepsThirdPageViewController">
+            <connections>
+                <outlet property="view" destination="i5M-Pr-FkT" id="sfx-zR-JGt"/>
+            </connections>
+        </placeholder>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="i5M-Pr-FkT">
+            <rect key="frame" x="0.0" y="0.0" width="320" height="442"/>
+            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+            <subviews>
+                <label clipsSubviews="YES" userInteractionEnabled="NO" contentMode="top" text="Connect Your device to the same network as your Mac or PC." textAlignment="center" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" minimumFontSize="9" adjustsLetterSpacingToFitWidth="YES" id="93K-R3-pGV">
+                    <rect key="frame" x="21" y="189" width="280" height="67"/>
+                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
+                    <color key="backgroundColor" red="0.1215686275" green="0.1215686275" blue="0.1215686275" alpha="1" colorSpace="calibratedRGB"/>
+                    <fontDescription key="fontDescription" type="system" pointSize="19"/>
+                    <color key="textColor" white="0.71999999999999997" alpha="1" colorSpace="calibratedWhite"/>
+                    <nil key="highlightedColor"/>
+                </label>
+                <imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="iDeviceWiFiPC.png" id="wcH-ns-f7f">
+                    <rect key="frame" x="20" y="68" width="280" height="123"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
+                </imageView>
+                <imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="wifiuploadsetup.png" id="Pen-ba-YPF">
+                    <rect key="frame" x="20" y="261" width="280" height="90"/>
+                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
+                </imageView>
+                <label clipsSubviews="YES" userInteractionEnabled="NO" contentMode="top" text="Switch the toggle in the sidebar, enter the URL to the web browser and upload your files." textAlignment="center" lineBreakMode="wordWrap" numberOfLines="0" baselineAdjustment="alignBaselines" minimumFontSize="9" adjustsLetterSpacingToFitWidth="YES" id="0Qh-Pn-NAG">
+                    <rect key="frame" x="21" y="351" width="278" height="92"/>
+                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
+                    <color key="backgroundColor" red="0.1215686275" green="0.1215686275" blue="0.1215686275" alpha="1" colorSpace="calibratedRGB"/>
+                    <fontDescription key="fontDescription" type="system" pointSize="18"/>
+                    <color key="textColor" white="0.71999999999999997" alpha="1" colorSpace="calibratedWhite"/>
+                    <nil key="highlightedColor"/>
+                </label>
+            </subviews>
+            <color key="backgroundColor" white="0.12" alpha="1" colorSpace="calibratedWhite"/>
+            <simulatedStatusBarMetrics key="simulatedStatusBarMetrics"/>
+            <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
+        </view>
+    </objects>
+    <resources>
+        <image name="iDeviceWiFiPC.png" width="506" height="223"/>
+        <image name="wifiuploadsetup.png" width="547" height="182"/>
+    </resources>
+</document>

BIN
Resources/cloudupload.png


BIN
Resources/en.lproj/Localizable.strings


BIN
Resources/iDeviceWiFiPC.png


BIN
Resources/ideviceConnectedToPC.png


BIN
Resources/playback.png


BIN
Resources/sidebar.png


BIN
Resources/wifiuploadsetup.png


+ 20 - 0
Sources/VLCFirstStepsFifthPageViewController.h

@@ -0,0 +1,20 @@
+/*****************************************************************************
+ * VLCFirstStepsFifthPageViewController.h
+ * VLC for iOS
+ *****************************************************************************
+ * Copyright (c) 2013 VideoLAN. All rights reserved.
+ * $Id$
+ *
+ * Authors: Felix Paul Kühne <fkuehne # videolan.org>
+ *
+ * Refer to the COPYING file of the official project for license.
+ *****************************************************************************/
+
+#import <UIKit/UIKit.h>
+
+@interface VLCFirstStepsFifthPageViewController : UIViewController
+
+@property (readonly) NSString *pageTitle;
+@property (readonly) NSUInteger page;
+
+@end

+ 38 - 0
Sources/VLCFirstStepsFifthPageViewController.m

@@ -0,0 +1,38 @@
+/*****************************************************************************
+ * VLCFirstStepsFifthPageViewController.m
+ * VLC for iOS
+ *****************************************************************************
+ * Copyright (c) 2013 VideoLAN. All rights reserved.
+ * $Id$
+ *
+ * Authors: Felix Paul Kühne <fkuehne # videolan.org>
+ *
+ * Refer to the COPYING file of the official project for license.
+ *****************************************************************************/
+
+#import "VLCFirstStepsFifthPageViewController.h"
+
+@interface VLCFirstStepsFifthPageViewController ()
+
+@end
+
+@implementation VLCFirstStepsFifthPageViewController
+
+- (void)viewDidLoad
+{
+    [super viewDidLoad];
+
+    /* FIXME: l10n */
+}
+
+- (NSString *)pageTitle
+{
+    return @"Playback";
+}
+
+- (NSUInteger)page
+{
+    return 5;
+}
+
+@end

+ 24 - 0
Sources/VLCFirstStepsFirstPageViewController.h

@@ -0,0 +1,24 @@
+/*****************************************************************************
+ * VLCFirstStepsFirstPageViewController.h
+ * VLC for iOS
+ *****************************************************************************
+ * Copyright (c) 2013 VideoLAN. All rights reserved.
+ * $Id$
+ *
+ * Authors: Felix Paul Kühne <fkuehne # videolan.org>
+ *
+ * Refer to the COPYING file of the official project for license.
+ *****************************************************************************/
+
+#import <UIKit/UIKit.h>
+
+@interface VLCFirstStepsFirstPageViewController : UIViewController
+
+@property (readonly) NSString *pageTitle;
+@property (readonly) NSUInteger page;
+
+@property (nonatomic, strong) IBOutlet UIButton *letsGoButton;
+@property (nonatomic, strong) IBOutlet UILabel *titleLabel;
+@property (nonatomic, strong) IBOutlet UILabel *subtitleLabel;
+
+@end

+ 37 - 0
Sources/VLCFirstStepsFirstPageViewController.m

@@ -0,0 +1,37 @@
+/*****************************************************************************
+ * VLCFirstStepsFirstPageViewController.m
+ * VLC for iOS
+ *****************************************************************************
+ * Copyright (c) 2013 VideoLAN. All rights reserved.
+ * $Id$
+ *
+ * Authors: Felix Paul Kühne <fkuehne # videolan.org>
+ *
+ * Refer to the COPYING file of the official project for license.
+ *****************************************************************************/
+
+#import "VLCFirstStepsFirstPageViewController.h"
+
+@interface VLCFirstStepsFirstPageViewController ()
+
+@end
+
+@implementation VLCFirstStepsFirstPageViewController
+
+- (void)viewDidLoad
+{
+    [super viewDidLoad];
+    /* FIXME: l10n */
+}
+
+- (NSString *)pageTitle
+{
+    return @"Welcome";
+}
+
+- (NSUInteger)page
+{
+    return 1;
+}
+
+@end

+ 20 - 0
Sources/VLCFirstStepsFourthPageViewController.h

@@ -0,0 +1,20 @@
+/*****************************************************************************
+ * VLCFirstStepsFourthPageViewController.h
+ * VLC for iOS
+ *****************************************************************************
+ * Copyright (c) 2013 VideoLAN. All rights reserved.
+ * $Id$
+ *
+ * Authors: Felix Paul Kühne <fkuehne # videolan.org>
+ *
+ * Refer to the COPYING file of the official project for license.
+ *****************************************************************************/
+
+#import <UIKit/UIKit.h>
+
+@interface VLCFirstStepsFourthPageViewController : UIViewController
+
+@property (readonly) NSString *pageTitle;
+@property (readonly) NSUInteger page;
+
+@end

+ 38 - 0
Sources/VLCFirstStepsFourthPageViewController.m

@@ -0,0 +1,38 @@
+/*****************************************************************************
+ * VLCFirstStepsFourthPageViewController.m
+ * VLC for iOS
+ *****************************************************************************
+ * Copyright (c) 2013 VideoLAN. All rights reserved.
+ * $Id$
+ *
+ * Authors: Felix Paul Kühne <fkuehne # videolan.org>
+ *
+ * Refer to the COPYING file of the official project for license.
+ *****************************************************************************/
+
+#import "VLCFirstStepsFourthPageViewController.h"
+
+@interface VLCFirstStepsFourthPageViewController ()
+
+@end
+
+@implementation VLCFirstStepsFourthPageViewController
+
+- (void)viewDidLoad
+{
+    [super viewDidLoad];
+
+    /* FIXME: l10n */
+}
+
+- (NSString *)pageTitle
+{
+    return @"Clouds";
+}
+
+- (NSUInteger)page
+{
+    return 4;
+}
+
+@end

+ 20 - 0
Sources/VLCFirstStepsSecondPageViewController.h

@@ -0,0 +1,20 @@
+/*****************************************************************************
+ * VLCFirstStepsSecondPageViewController.h
+ * VLC for iOS
+ *****************************************************************************
+ * Copyright (c) 2013 VideoLAN. All rights reserved.
+ * $Id$
+ *
+ * Authors: Felix Paul Kühne <fkuehne # videolan.org>
+ *
+ * Refer to the COPYING file of the official project for license.
+ *****************************************************************************/
+
+#import <UIKit/UIKit.h>
+
+@interface VLCFirstStepsSecondPageViewController : UIViewController
+
+@property (readonly) NSString *pageTitle;
+@property (readonly) NSUInteger page;
+
+@end

+ 38 - 0
Sources/VLCFirstStepsSecondPageViewController.m

@@ -0,0 +1,38 @@
+/*****************************************************************************
+ * VLCFirstStepsSecondPageViewController.m
+ * VLC for iOS
+ *****************************************************************************
+ * Copyright (c) 2013 VideoLAN. All rights reserved.
+ * $Id$
+ *
+ * Authors: Felix Paul Kühne <fkuehne # videolan.org>
+ *
+ * Refer to the COPYING file of the official project for license.
+ *****************************************************************************/
+
+#import "VLCFirstStepsSecondPageViewController.h"
+
+@interface VLCFirstStepsSecondPageViewController ()
+
+@end
+
+@implementation VLCFirstStepsSecondPageViewController
+
+- (void)viewDidLoad
+{
+    [super viewDidLoad];
+
+    /* FIXME: l10n */
+}
+
+- (NSString *)pageTitle
+{
+    return @"iTunes File Sync";
+}
+
+- (NSUInteger)page
+{
+    return 2;
+}
+
+@end

+ 22 - 0
Sources/VLCFirstStepsSixthPageViewController.h

@@ -0,0 +1,22 @@
+/*****************************************************************************
+ * VLCFirstStepsSixthPageViewController.h
+ * VLC for iOS
+ *****************************************************************************
+ * Copyright (c) 2013 VideoLAN. All rights reserved.
+ * $Id$
+ *
+ * Authors: Felix Paul Kühne <fkuehne # videolan.org>
+ *
+ * Refer to the COPYING file of the official project for license.
+ *****************************************************************************/
+
+#import <UIKit/UIKit.h>
+
+@interface VLCFirstStepsSixthPageViewController : UIViewController
+
+@property (readonly) NSString *pageTitle;
+@property (readonly) NSUInteger page;
+
+- (IBAction)learnMore:(id)sender;
+
+@end

+ 43 - 0
Sources/VLCFirstStepsSixthPageViewController.m

@@ -0,0 +1,43 @@
+/*****************************************************************************
+ * VLCFirstStepsSixthPageViewController.m
+ * VLC for iOS
+ *****************************************************************************
+ * Copyright (c) 2013 VideoLAN. All rights reserved.
+ * $Id$
+ *
+ * Authors: Felix Paul Kühne <fkuehne # videolan.org>
+ *
+ * Refer to the COPYING file of the official project for license.
+ *****************************************************************************/
+
+#import "VLCFirstStepsSixthPageViewController.h"
+
+@interface VLCFirstStepsSixthPageViewController ()
+
+@end
+
+@implementation VLCFirstStepsSixthPageViewController
+
+- (void)viewDidLoad
+{
+    [super viewDidLoad];
+
+    /* FIXME: l10n */
+}
+
+- (NSString *)pageTitle
+{
+    return @"VLC";
+}
+
+- (NSUInteger)page
+{
+    return 6;
+}
+
+- (IBAction)learnMore:(id)sender
+{
+    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.videolan.org/contribute.html"]];
+}
+
+@end

+ 20 - 0
Sources/VLCFirstStepsThirdPageViewController.h

@@ -0,0 +1,20 @@
+/*****************************************************************************
+ * VLCFirstStepsThirdPageViewController.h
+ * VLC for iOS
+ *****************************************************************************
+ * Copyright (c) 2013 VideoLAN. All rights reserved.
+ * $Id$
+ *
+ * Authors: Felix Paul Kühne <fkuehne # videolan.org>
+ *
+ * Refer to the COPYING file of the official project for license.
+ *****************************************************************************/
+
+#import <UIKit/UIKit.h>
+
+@interface VLCFirstStepsThirdPageViewController : UIViewController
+
+@property (readonly) NSString *pageTitle;
+@property (readonly) NSUInteger page;
+
+@end

+ 38 - 0
Sources/VLCFirstStepsThirdPageViewController.m

@@ -0,0 +1,38 @@
+/*****************************************************************************
+ * VLCFirstStepsThirdPageViewController.m
+ * VLC for iOS
+ *****************************************************************************
+ * Copyright (c) 2013 VideoLAN. All rights reserved.
+ * $Id$
+ *
+ * Authors: Felix Paul Kühne <fkuehne # videolan.org>
+ *
+ * Refer to the COPYING file of the official project for license.
+ *****************************************************************************/
+
+#import "VLCFirstStepsThirdPageViewController.h"
+
+@interface VLCFirstStepsThirdPageViewController ()
+
+@end
+
+@implementation VLCFirstStepsThirdPageViewController
+
+- (void)viewDidLoad
+{
+    [super viewDidLoad];
+
+    /* FIXME: l10n */
+}
+
+- (NSString *)pageTitle
+{
+    return @"WiFi Upload";
+}
+
+- (NSUInteger)page
+{
+    return 3;
+}
+
+@end

+ 17 - 0
Sources/VLCFirstStepsViewController.h

@@ -0,0 +1,17 @@
+/*****************************************************************************
+ * VLCFirstStepsViewController.h
+ * VLC for iOS
+ *****************************************************************************
+ * Copyright (c) 2013 VideoLAN. All rights reserved.
+ * $Id$
+ *
+ * Authors: Felix Paul Kühne <fkuehne # videolan.org>
+ *
+ * Refer to the COPYING file of the official project for license.
+ *****************************************************************************/
+
+#import <UIKit/UIKit.h>
+
+@interface VLCFirstStepsViewController : UIViewController
+
+@end

+ 136 - 0
Sources/VLCFirstStepsViewController.m

@@ -0,0 +1,136 @@
+/*****************************************************************************
+ * VLCFirstStepsViewController.m
+ * VLC for iOS
+ *****************************************************************************
+ * Copyright (c) 2013 VideoLAN. All rights reserved.
+ * $Id$
+ *
+ * Authors: Felix Paul Kühne <fkuehne # videolan.org>
+ *
+ * Refer to the COPYING file of the official project for license.
+ *****************************************************************************/
+
+#import "VLCFirstStepsViewController.h"
+#import "VLCFirstStepsFirstPageViewController.h"
+#import "VLCFirstStepsSecondPageViewController.h"
+#import "VLCFirstStepsThirdPageViewController.h"
+#import "VLCFirstStepsFourthPageViewController.h"
+#import "VLCFirstStepsFifthPageViewController.h"
+#import "VLCFirstStepsSixthPageViewController.h"
+#import "UIBarButtonItem+Theme.h"
+
+@interface VLCFirstStepsViewController () <UIPageViewControllerDataSource, UIPageViewControllerDelegate>
+{
+    UIPageViewController *pageVC;
+}
+
+@end
+
+@implementation VLCFirstStepsViewController
+
+- (void)viewDidLoad
+{
+    [super viewDidLoad];
+
+    pageVC = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:nil];
+    pageVC.dataSource = self;
+    pageVC.delegate = self;
+
+    [[pageVC view] setFrame:[[self view] bounds]];
+
+    [pageVC setViewControllers:@[[[VLCFirstStepsFirstPageViewController alloc] initWithNibName:nil bundle:nil]] direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:nil];
+
+    UIBarButtonItem *dismissButton = [UIBarButtonItem themedDoneButtonWithTarget:self andSelector:@selector(dismissFirstSteps)];
+    self.navigationItem.rightBarButtonItem = dismissButton;
+    self.title = @"Welcome";
+
+    [self addChildViewController:pageVC];
+    [self.view addSubview:[pageVC view]];
+    [pageVC didMoveToParentViewController:self];
+}
+
+- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController
+{
+    UIViewController *returnedVC;
+    NSUInteger currentPage = 0;
+
+    if ([viewController respondsToSelector:@selector(page)])
+        currentPage = (NSUInteger)[viewController performSelector:@selector(page) withObject:nil];
+
+    switch (currentPage) {
+        case 1:
+            returnedVC = [[VLCFirstStepsSecondPageViewController alloc] initWithNibName:nil bundle:nil];
+            break;
+        case 2:
+            returnedVC = [[VLCFirstStepsThirdPageViewController alloc] initWithNibName:nil bundle:nil];
+            break;
+        case 3:
+            returnedVC = [[VLCFirstStepsFourthPageViewController alloc] initWithNibName:nil bundle:nil];
+            break;
+        case 4:
+            returnedVC = [[VLCFirstStepsFifthPageViewController alloc] initWithNibName:nil bundle:nil];
+            break;
+        case 5:
+            returnedVC = [[VLCFirstStepsSixthPageViewController alloc] initWithNibName:nil bundle:nil];
+            break;
+
+        default:
+            nil;
+    }
+
+    return returnedVC;
+}
+
+- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController
+{
+    UIViewController *returnedVC;
+    NSUInteger currentPage = 0;
+
+    if ([viewController respondsToSelector:@selector(page)])
+        currentPage = (NSUInteger)[viewController performSelector:@selector(page) withObject:nil];
+
+    switch (currentPage) {
+        case 2:
+            returnedVC = [[VLCFirstStepsFirstPageViewController alloc] initWithNibName:nil bundle:nil];
+            break;
+        case 3:
+            returnedVC = [[VLCFirstStepsSecondPageViewController alloc] initWithNibName:nil bundle:nil];
+            break;
+        case 4:
+            returnedVC = [[VLCFirstStepsThirdPageViewController alloc] initWithNibName:nil bundle:nil];
+            break;
+        case 5:
+            returnedVC = [[VLCFirstStepsFourthPageViewController alloc] initWithNibName:nil bundle:nil];
+            break;
+        case 6:
+            returnedVC = [[VLCFirstStepsFifthPageViewController alloc] initWithNibName:nil bundle:nil];
+            break;
+
+        default:
+            nil;
+    }
+
+    return returnedVC;
+}
+
+- (NSInteger)presentationCountForPageViewController:(UIPageViewController *)pageViewController
+{
+    return 6;
+}
+
+- (NSInteger)presentationIndexForPageViewController:(UIPageViewController *)pageViewController
+{
+    return 0;
+}
+
+- (void)dismissFirstSteps
+{
+    [self.navigationController dismissViewControllerAnimated:YES completion:nil];
+}
+
+- (void)pageViewController:(UIPageViewController *)pageViewController didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray *)previousViewControllers transitionCompleted:(BOOL)completed
+{
+    self.title = [[pageViewController viewControllers][0] pageTitle];
+}
+
+@end

+ 3 - 0
Sources/VLCPlaylistViewController.h

@@ -41,5 +41,8 @@ typedef enum {
 @property (nonatomic, strong) IBOutlet UILabel *emptyLibraryLabel;
 @property (nonatomic, strong) IBOutlet UILabel *emptyLibraryLongDescriptionLabel;
 @property (nonatomic, strong) IBOutlet UIActivityIndicatorView *activityIndicator;
+@property (nonatomic, strong) IBOutlet UIButton *learnMoreButton;
+
+- (IBAction)learnMore:(id)sender;
 
 @end

+ 11 - 0
Sources/VLCPlaylistViewController.m

@@ -21,8 +21,19 @@
 #import "VLCBugreporter.h"
 #import "VLCAppDelegate.h"
 #import "UIBarButtonItem+Theme.h"
+#import "VLCFirstStepsViewController.h"
 
 @implementation EmptyLibraryView
+
+- (IBAction)learnMore:(id)sender
+{
+    UIViewController *firstStepsVC = [[VLCFirstStepsViewController alloc] initWithNibName:nil bundle:nil];
+    UINavigationController *navCon = [[UINavigationController alloc] initWithRootViewController:firstStepsVC];
+    navCon.modalPresentationStyle = UIModalPresentationFormSheet;
+    [navCon loadTheme];
+    [self.window.rootViewController presentViewController:navCon animated:YES completion:nil];
+}
+
 @end
 
 @interface VLCPlaylistViewController () <UICollectionViewDataSource, UICollectionViewDelegateFlowLayout, UITableViewDataSource, UITableViewDelegate, MLMediaLibrary> {

+ 114 - 0
VLC for iOS.xcodeproj/project.pbxproj

@@ -83,6 +83,12 @@
 		7D07F72F175691CC00CDE21C /* backButton@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7D07F72B175691CC00CDE21C /* backButton@2x.png */; };
 		7D07F730175691CC00CDE21C /* backButtonHighlight.png in Resources */ = {isa = PBXBuildFile; fileRef = 7D07F72C175691CC00CDE21C /* backButtonHighlight.png */; };
 		7D07F731175691CC00CDE21C /* backButtonHighlight@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7D07F72D175691CC00CDE21C /* backButtonHighlight@2x.png */; };
+		7D1516421868D7E0004B18F3 /* VLCFirstStepsFifthPageViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D15163B1868D7E0004B18F3 /* VLCFirstStepsFifthPageViewController.xib */; };
+		7D1516431868D7E0004B18F3 /* VLCFirstStepsFirstPageViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D15163C1868D7E0004B18F3 /* VLCFirstStepsFirstPageViewController.xib */; };
+		7D1516441868D7E0004B18F3 /* VLCFirstStepsFourthPageViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D15163D1868D7E0004B18F3 /* VLCFirstStepsFourthPageViewController.xib */; };
+		7D1516451868D7E0004B18F3 /* VLCFirstStepsSecondPageViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D15163E1868D7E0004B18F3 /* VLCFirstStepsSecondPageViewController.xib */; };
+		7D1516461868D7E0004B18F3 /* VLCFirstStepsSixthPageViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D15163F1868D7E0004B18F3 /* VLCFirstStepsSixthPageViewController.xib */; };
+		7D1516471868D7E0004B18F3 /* VLCFirstStepsThirdPageViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7D1516401868D7E0004B18F3 /* VLCFirstStepsThirdPageViewController.xib */; };
 		7D16035D17BF9FE600F29B34 /* sudHeaderBg.png in Resources */ = {isa = PBXBuildFile; fileRef = 7D16035917BF9FE600F29B34 /* sudHeaderBg.png */; };
 		7D16035E17BF9FE600F29B34 /* sudHeaderBg@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7D16035A17BF9FE600F29B34 /* sudHeaderBg@2x.png */; };
 		7D16035F17BF9FE600F29B34 /* headerSidebar@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7D16035B17BF9FE600F29B34 /* headerSidebar@2x.png */; };
@@ -256,6 +262,19 @@
 		7DBBF1A9183AB4300009A339 /* VLCPlaylistCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7DBBF194183AB4300009A339 /* VLCPlaylistCollectionViewCell.xib */; };
 		7DBBF1AB183AB4300009A339 /* VLCPlaylistTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7DBBF196183AB4300009A339 /* VLCPlaylistTableViewCell.xib */; };
 		7DBBF1AC183AB4300009A339 /* VLCWiFiUploadTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7DBBF197183AB4300009A339 /* VLCWiFiUploadTableViewCell.xib */; };
+		7DC19ADF1868C7BB00810BF7 /* VLCFirstStepsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DC19ADD1868C7BB00810BF7 /* VLCFirstStepsViewController.m */; };
+		7DC19AE41868C8EC00810BF7 /* VLCFirstStepsFirstPageViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DC19AE21868C8EC00810BF7 /* VLCFirstStepsFirstPageViewController.m */; };
+		7DC19AE91868C90700810BF7 /* VLCFirstStepsSecondPageViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DC19AE71868C90700810BF7 /* VLCFirstStepsSecondPageViewController.m */; };
+		7DC19AEE1868CCD400810BF7 /* ideviceConnectedToPC.png in Resources */ = {isa = PBXBuildFile; fileRef = 7DC19AED1868CCD400810BF7 /* ideviceConnectedToPC.png */; };
+		7DC19AF21868CDAD00810BF7 /* VLCFirstStepsThirdPageViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DC19AF01868CDAD00810BF7 /* VLCFirstStepsThirdPageViewController.m */; };
+		7DC19AF61868CE4000810BF7 /* iDeviceWiFiPC.png in Resources */ = {isa = PBXBuildFile; fileRef = 7DC19AF51868CE4000810BF7 /* iDeviceWiFiPC.png */; };
+		7DC19AF81868CEE900810BF7 /* wifiuploadsetup.png in Resources */ = {isa = PBXBuildFile; fileRef = 7DC19AF71868CEE900810BF7 /* wifiuploadsetup.png */; };
+		7DC19AFC1868CFA300810BF7 /* VLCFirstStepsFourthPageViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DC19AFA1868CFA300810BF7 /* VLCFirstStepsFourthPageViewController.m */; };
+		7DC19AFF1868CFDE00810BF7 /* cloudupload.png in Resources */ = {isa = PBXBuildFile; fileRef = 7DC19AFE1868CFDE00810BF7 /* cloudupload.png */; };
+		7DC19B011868D05A00810BF7 /* sidebar.png in Resources */ = {isa = PBXBuildFile; fileRef = 7DC19B001868D05A00810BF7 /* sidebar.png */; };
+		7DC19B051868D1C400810BF7 /* VLCFirstStepsFifthPageViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DC19B031868D1C400810BF7 /* VLCFirstStepsFifthPageViewController.m */; };
+		7DC19B081868D1EC00810BF7 /* playback.png in Resources */ = {isa = PBXBuildFile; fileRef = 7DC19B071868D1EC00810BF7 /* playback.png */; };
+		7DC19B0C1868D21800810BF7 /* VLCFirstStepsSixthPageViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DC19B0A1868D21800810BF7 /* VLCFirstStepsSixthPageViewController.m */; };
 		7DC72D5E17B7E7C7008A26D0 /* download@4x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7DC72D5B17B7E7C7008A26D0 /* download@4x.png */; };
 		7DC72D5F17B7E7C7008A26D0 /* download.png in Resources */ = {isa = PBXBuildFile; fileRef = 7DC72D5C17B7E7C7008A26D0 /* download.png */; };
 		7DC72D6017B7E7C7008A26D0 /* download@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7DC72D5D17B7E7C7008A26D0 /* download@2x.png */; };
@@ -431,6 +450,12 @@
 		7D07F72B175691CC00CDE21C /* backButton@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "backButton@2x.png"; sourceTree = "<group>"; };
 		7D07F72C175691CC00CDE21C /* backButtonHighlight.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = backButtonHighlight.png; sourceTree = "<group>"; };
 		7D07F72D175691CC00CDE21C /* backButtonHighlight@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "backButtonHighlight@2x.png"; sourceTree = "<group>"; };
+		7D15163B1868D7E0004B18F3 /* VLCFirstStepsFifthPageViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = VLCFirstStepsFifthPageViewController.xib; path = Resources/VLCFirstStepsFifthPageViewController.xib; sourceTree = SOURCE_ROOT; };
+		7D15163C1868D7E0004B18F3 /* VLCFirstStepsFirstPageViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = VLCFirstStepsFirstPageViewController.xib; path = Resources/VLCFirstStepsFirstPageViewController.xib; sourceTree = SOURCE_ROOT; };
+		7D15163D1868D7E0004B18F3 /* VLCFirstStepsFourthPageViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = VLCFirstStepsFourthPageViewController.xib; path = Resources/VLCFirstStepsFourthPageViewController.xib; sourceTree = SOURCE_ROOT; };
+		7D15163E1868D7E0004B18F3 /* VLCFirstStepsSecondPageViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = VLCFirstStepsSecondPageViewController.xib; path = Resources/VLCFirstStepsSecondPageViewController.xib; sourceTree = SOURCE_ROOT; };
+		7D15163F1868D7E0004B18F3 /* VLCFirstStepsSixthPageViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = VLCFirstStepsSixthPageViewController.xib; path = Resources/VLCFirstStepsSixthPageViewController.xib; sourceTree = SOURCE_ROOT; };
+		7D1516401868D7E0004B18F3 /* VLCFirstStepsThirdPageViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = VLCFirstStepsThirdPageViewController.xib; path = Resources/VLCFirstStepsThirdPageViewController.xib; sourceTree = SOURCE_ROOT; };
 		7D16035917BF9FE600F29B34 /* sudHeaderBg.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = sudHeaderBg.png; sourceTree = "<group>"; };
 		7D16035A17BF9FE600F29B34 /* sudHeaderBg@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "sudHeaderBg@2x.png"; sourceTree = "<group>"; };
 		7D16035B17BF9FE600F29B34 /* headerSidebar@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "headerSidebar@2x.png"; sourceTree = "<group>"; };
@@ -776,6 +801,26 @@
 		7DBBF194183AB4300009A339 /* VLCPlaylistCollectionViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = VLCPlaylistCollectionViewCell.xib; path = Resources/VLCPlaylistCollectionViewCell.xib; sourceTree = SOURCE_ROOT; };
 		7DBBF196183AB4300009A339 /* VLCPlaylistTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = VLCPlaylistTableViewCell.xib; path = Resources/VLCPlaylistTableViewCell.xib; sourceTree = SOURCE_ROOT; };
 		7DBBF197183AB4300009A339 /* VLCWiFiUploadTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = VLCWiFiUploadTableViewCell.xib; path = Resources/VLCWiFiUploadTableViewCell.xib; sourceTree = SOURCE_ROOT; };
+		7DC19ADC1868C7BB00810BF7 /* VLCFirstStepsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCFirstStepsViewController.h; path = Sources/VLCFirstStepsViewController.h; sourceTree = SOURCE_ROOT; };
+		7DC19ADD1868C7BB00810BF7 /* VLCFirstStepsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCFirstStepsViewController.m; path = Sources/VLCFirstStepsViewController.m; sourceTree = SOURCE_ROOT; };
+		7DC19AE11868C8EC00810BF7 /* VLCFirstStepsFirstPageViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCFirstStepsFirstPageViewController.h; path = Sources/VLCFirstStepsFirstPageViewController.h; sourceTree = SOURCE_ROOT; };
+		7DC19AE21868C8EC00810BF7 /* VLCFirstStepsFirstPageViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCFirstStepsFirstPageViewController.m; path = Sources/VLCFirstStepsFirstPageViewController.m; sourceTree = SOURCE_ROOT; };
+		7DC19AE61868C90700810BF7 /* VLCFirstStepsSecondPageViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCFirstStepsSecondPageViewController.h; path = Sources/VLCFirstStepsSecondPageViewController.h; sourceTree = SOURCE_ROOT; };
+		7DC19AE71868C90700810BF7 /* VLCFirstStepsSecondPageViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCFirstStepsSecondPageViewController.m; path = Sources/VLCFirstStepsSecondPageViewController.m; sourceTree = SOURCE_ROOT; };
+		7DC19AED1868CCD400810BF7 /* ideviceConnectedToPC.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ideviceConnectedToPC.png; sourceTree = "<group>"; };
+		7DC19AEF1868CDAD00810BF7 /* VLCFirstStepsThirdPageViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCFirstStepsThirdPageViewController.h; path = Sources/VLCFirstStepsThirdPageViewController.h; sourceTree = SOURCE_ROOT; };
+		7DC19AF01868CDAD00810BF7 /* VLCFirstStepsThirdPageViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCFirstStepsThirdPageViewController.m; path = Sources/VLCFirstStepsThirdPageViewController.m; sourceTree = SOURCE_ROOT; };
+		7DC19AF51868CE4000810BF7 /* iDeviceWiFiPC.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = iDeviceWiFiPC.png; sourceTree = "<group>"; };
+		7DC19AF71868CEE900810BF7 /* wifiuploadsetup.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = wifiuploadsetup.png; sourceTree = "<group>"; };
+		7DC19AF91868CFA300810BF7 /* VLCFirstStepsFourthPageViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCFirstStepsFourthPageViewController.h; path = Sources/VLCFirstStepsFourthPageViewController.h; sourceTree = SOURCE_ROOT; };
+		7DC19AFA1868CFA300810BF7 /* VLCFirstStepsFourthPageViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCFirstStepsFourthPageViewController.m; path = Sources/VLCFirstStepsFourthPageViewController.m; sourceTree = SOURCE_ROOT; };
+		7DC19AFE1868CFDE00810BF7 /* cloudupload.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = cloudupload.png; sourceTree = "<group>"; };
+		7DC19B001868D05A00810BF7 /* sidebar.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = sidebar.png; sourceTree = "<group>"; };
+		7DC19B021868D1C400810BF7 /* VLCFirstStepsFifthPageViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCFirstStepsFifthPageViewController.h; path = Sources/VLCFirstStepsFifthPageViewController.h; sourceTree = SOURCE_ROOT; };
+		7DC19B031868D1C400810BF7 /* VLCFirstStepsFifthPageViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCFirstStepsFifthPageViewController.m; path = Sources/VLCFirstStepsFifthPageViewController.m; sourceTree = SOURCE_ROOT; };
+		7DC19B071868D1EC00810BF7 /* playback.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = playback.png; sourceTree = "<group>"; };
+		7DC19B091868D21800810BF7 /* VLCFirstStepsSixthPageViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCFirstStepsSixthPageViewController.h; path = Sources/VLCFirstStepsSixthPageViewController.h; sourceTree = SOURCE_ROOT; };
+		7DC19B0A1868D21800810BF7 /* VLCFirstStepsSixthPageViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCFirstStepsSixthPageViewController.m; path = Sources/VLCFirstStepsSixthPageViewController.m; sourceTree = SOURCE_ROOT; };
 		7DC222771773AB0900371B5C /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = "<group>"; };
 		7DC222781773AB0900371B5C /* es */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = es; path = "es.lproj/badgeUnread@2x~ipad.png"; sourceTree = "<group>"; };
 		7DC222791773AB0900371B5C /* es */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = es; path = "es.lproj/badgeUnread@2x~iphone.png"; sourceTree = "<group>"; };
@@ -1394,6 +1439,7 @@
 				7D3784A5183A98F5009EE944 /* VLCSettingsController.m */,
 				7D37849F183A98EB009EE944 /* VLCBugreporter.h */,
 				7D3784A0183A98EB009EE944 /* VLCBugreporter.m */,
+				7DC19AEB1868C91400810BF7 /* First Steps */,
 			);
 			name = "Accessory dialogs";
 			sourceTree = "<group>";
@@ -1611,6 +1657,7 @@
 		7DADC55C1704FAA8001DAC63 /* XIBs */ = {
 			isa = PBXGroup;
 			children = (
+				7DC19AF41868CDB800810BF7 /* First Steps */,
 				7DBBF183183AB4300009A339 /* VLCAboutViewController~ipad.xib */,
 				7DBBF184183AB4300009A339 /* VLCAboutViewController~iphone.xib */,
 				7DBBF185183AB4300009A339 /* VLCCloudStorageTableViewCell~ipad.xib */,
@@ -1666,6 +1713,53 @@
 			name = Icons;
 			sourceTree = "<group>";
 		};
+		7DC19AEB1868C91400810BF7 /* First Steps */ = {
+			isa = PBXGroup;
+			children = (
+				7DC19ADC1868C7BB00810BF7 /* VLCFirstStepsViewController.h */,
+				7DC19ADD1868C7BB00810BF7 /* VLCFirstStepsViewController.m */,
+				7DC19AE11868C8EC00810BF7 /* VLCFirstStepsFirstPageViewController.h */,
+				7DC19AE21868C8EC00810BF7 /* VLCFirstStepsFirstPageViewController.m */,
+				7DC19AE61868C90700810BF7 /* VLCFirstStepsSecondPageViewController.h */,
+				7DC19AE71868C90700810BF7 /* VLCFirstStepsSecondPageViewController.m */,
+				7DC19AEF1868CDAD00810BF7 /* VLCFirstStepsThirdPageViewController.h */,
+				7DC19AF01868CDAD00810BF7 /* VLCFirstStepsThirdPageViewController.m */,
+				7DC19AF91868CFA300810BF7 /* VLCFirstStepsFourthPageViewController.h */,
+				7DC19AFA1868CFA300810BF7 /* VLCFirstStepsFourthPageViewController.m */,
+				7DC19B021868D1C400810BF7 /* VLCFirstStepsFifthPageViewController.h */,
+				7DC19B031868D1C400810BF7 /* VLCFirstStepsFifthPageViewController.m */,
+				7DC19B091868D21800810BF7 /* VLCFirstStepsSixthPageViewController.h */,
+				7DC19B0A1868D21800810BF7 /* VLCFirstStepsSixthPageViewController.m */,
+			);
+			name = "First Steps";
+			sourceTree = "<group>";
+		};
+		7DC19AEC1868CC0000810BF7 /* First steps */ = {
+			isa = PBXGroup;
+			children = (
+				7DC19AED1868CCD400810BF7 /* ideviceConnectedToPC.png */,
+				7DC19AF71868CEE900810BF7 /* wifiuploadsetup.png */,
+				7DC19AF51868CE4000810BF7 /* iDeviceWiFiPC.png */,
+				7DC19AFE1868CFDE00810BF7 /* cloudupload.png */,
+				7DC19B001868D05A00810BF7 /* sidebar.png */,
+				7DC19B071868D1EC00810BF7 /* playback.png */,
+			);
+			name = "First steps";
+			sourceTree = "<group>";
+		};
+		7DC19AF41868CDB800810BF7 /* First Steps */ = {
+			isa = PBXGroup;
+			children = (
+				7D15163C1868D7E0004B18F3 /* VLCFirstStepsFirstPageViewController.xib */,
+				7D15163E1868D7E0004B18F3 /* VLCFirstStepsSecondPageViewController.xib */,
+				7D1516401868D7E0004B18F3 /* VLCFirstStepsThirdPageViewController.xib */,
+				7D15163D1868D7E0004B18F3 /* VLCFirstStepsFourthPageViewController.xib */,
+				7D15163B1868D7E0004B18F3 /* VLCFirstStepsFifthPageViewController.xib */,
+				7D15163F1868D7E0004B18F3 /* VLCFirstStepsSixthPageViewController.xib */,
+			);
+			name = "First Steps";
+			sourceTree = "<group>";
+		};
 		7DC72D6417B7ED2A008A26D0 /* WhiteRaccoon */ = {
 			isa = PBXGroup;
 			children = (
@@ -1765,6 +1859,7 @@
 		A7924697170F0ED20036AAF2 /* Resources */ = {
 			isa = PBXGroup;
 			children = (
+				7DC19AEC1868CC0000810BF7 /* First steps */,
 				7D47D6C81760CD2700E86BAD /* Movie VIew */,
 				7D6B08FB174D773C00A05173 /* Settings.bundle */,
 				29125E5317492219003F03E5 /* web */,
@@ -2008,10 +2103,13 @@
 				A79246C8170F11DF0036AAF2 /* Localizable.strings in Resources */,
 				A7CB0DB11716F72600050CF3 /* PlayingExternally@2x~iphone.png in Resources */,
 				A7CB0DB21716F72600050CF3 /* PlayingExternally~iphone.png in Resources */,
+				7DC19AEE1868CCD400810BF7 /* ideviceConnectedToPC.png in Resources */,
 				9B9231C4185A703700F89498 /* VLCFutureNetworkLoginViewController.xib in Resources */,
+				7D1516431868D7E0004B18F3 /* VLCFirstStepsFirstPageViewController.xib in Resources */,
 				7DBBF1A8183AB4300009A339 /* VLCOpenNetworkStreamViewController.xib in Resources */,
 				A7CB0DB31716F72600050CF3 /* PlayingExternally~ipad.png in Resources */,
 				7D897888185E130E009BAB5D /* Quincy.bundle in Resources */,
+				7DC19B011868D05A00810BF7 /* sidebar.png in Resources */,
 				A7CB0DB41716F72600050CF3 /* PlayingExternally@2x~ipad.png in Resources */,
 				7DBBF1A9183AB4300009A339 /* VLCPlaylistCollectionViewCell.xib in Resources */,
 				7DA8B0FB173318E80029698C /* SourceCodePro-Regular.ttf in Resources */,
@@ -2033,9 +2131,11 @@
 				7DBBF1A4183AB4300009A339 /* VLCLocalNetworkListCell~iphone.xib in Resources */,
 				7D07F711175669D800CDE21C /* buttonHighlight@2x.png in Resources */,
 				7D07F71417566C4A00CDE21C /* menuCone.png in Resources */,
+				7DC19B081868D1EC00810BF7 /* playback.png in Resources */,
 				7D07F71517566C4A00CDE21C /* menuCone@2x.png in Resources */,
 				7D07F71E175673D100CDE21C /* menuBtnBckHighlight@2x.png in Resources */,
 				7DBBF1A7183AB4300009A339 /* VLCNetworkLoginViewController.xib in Resources */,
+				7D1516451868D7E0004B18F3 /* VLCFirstStepsSecondPageViewController.xib in Resources */,
 				7D07F71F175673D100CDE21C /* menuBtnBck@2x.png in Resources */,
 				7D07F720175673D100CDE21C /* menuBtnBckHighlight.png in Resources */,
 				7D07F721175673D100CDE21C /* menuBtnBck.png in Resources */,
@@ -2081,6 +2181,7 @@
 				7D47D70D1760CD8700E86BAD /* ratioButton.png in Resources */,
 				7DA7C906186324FA00B56120 /* serverIcon@2x.png in Resources */,
 				7D47D70E1760CD8700E86BAD /* ratioButton@2x.png in Resources */,
+				7D1516461868D7E0004B18F3 /* VLCFirstStepsSixthPageViewController.xib in Resources */,
 				7D47D70F1760CD8700E86BAD /* ratioButtonHighlight.png in Resources */,
 				7D47D7101760CD8700E86BAD /* ratioButtonHighlight@2x.png in Resources */,
 				7D47D7111760CD8700E86BAD /* seekbarBg.png in Resources */,
@@ -2129,21 +2230,25 @@
 				7DBBF198183AB4300009A339 /* VLCAboutViewController~ipad.xib in Resources */,
 				7DBBF1A6183AB4300009A339 /* VLCMovieViewController~iphone.xib in Resources */,
 				7D89787D185DF794009BAB5D /* VLCFutureOpenNetworkStreamViewController.xib in Resources */,
+				7DC19AF81868CEE900810BF7 /* wifiuploadsetup.png in Resources */,
 				7DEB3B851764A4F40038FC70 /* movie@2x.png in Resources */,
 				7DEB3B861764A4F40038FC70 /* movie@4x.png in Resources */,
 				7DEB3B871764A4F40038FC70 /* blank@4x.png in Resources */,
 				7DEB3B881764A4F40038FC70 /* folder.png in Resources */,
 				7DEB3B891764A4F40038FC70 /* folder@2x.png in Resources */,
+				7D1516471868D7E0004B18F3 /* VLCFirstStepsThirdPageViewController.xib in Resources */,
 				9B1A164F185E0821001A99D9 /* backIcon@2x.png in Resources */,
 				7DEB3B8A1764A4F40038FC70 /* folder@4x.png in Resources */,
 				7DEB3B8B1764A4F40038FC70 /* movie.png in Resources */,
 				7DEB3B8C1764A4F40038FC70 /* blank.png in Resources */,
+				7D1516441868D7E0004B18F3 /* VLCFirstStepsFourthPageViewController.xib in Resources */,
 				7DEB3B8D1764A4F40038FC70 /* blank@2x.png in Resources */,
 				7D223E1B181EC56E00B36798 /* gradient-cell-ios7-ipad@2x.png in Resources */,
 				7AC8629D1765DC560011611A /* style.css in Resources */,
 				7DF1166C176CC69A009EC05C /* volumeballslider.png in Resources */,
 				7DF1166D176CC69A009EC05C /* volumeballslider@2x.png in Resources */,
 				7DD2A3A9179C04A7003EB537 /* OpenSans-Regular.ttf in Resources */,
+				7DC19AFF1868CFDE00810BF7 /* cloudupload.png in Resources */,
 				7DA7C907186324FA00B56120 /* serverIcon@4x.png in Resources */,
 				7D3E6CE518589EE000D584E7 /* AppIcon512x512.png in Resources */,
 				7D2A34A41805CDBA004078AA /* gradient-cell-ios7.png in Resources */,
@@ -2155,6 +2260,7 @@
 				7DC72D6017B7E7C7008A26D0 /* download@2x.png in Resources */,
 				7D16035D17BF9FE600F29B34 /* sudHeaderBg.png in Resources */,
 				7D16035E17BF9FE600F29B34 /* sudHeaderBg@2x.png in Resources */,
+				7DC19AF61868CE4000810BF7 /* iDeviceWiFiPC.png in Resources */,
 				7DBBF1A0183AB4300009A339 /* VLCFuturePlaylistCollectionViewCell.xib in Resources */,
 				7D16035F17BF9FE600F29B34 /* headerSidebar@2x.png in Resources */,
 				7D16036017BF9FE600F29B34 /* headerSidebar.png in Resources */,
@@ -2173,6 +2279,7 @@
 				9BF0708F185122AA009B23DD /* audio@2x.png in Resources */,
 				7D0699DE17CB1FAE00713BEB /* Local.png in Resources */,
 				7D0699DF17CB1FAE00713BEB /* Local@2x.png in Resources */,
+				7D1516421868D7E0004B18F3 /* VLCFirstStepsFifthPageViewController.xib in Resources */,
 				7D0699E017CB1FAE00713BEB /* MusicAlbums.png in Resources */,
 				9B1A1653185E08B4001A99D9 /* forwardIcon@2x.png in Resources */,
 				7D0699E117CB1FAE00713BEB /* MusicAlbums@2x.png in Resources */,
@@ -2220,6 +2327,7 @@
 				2915540417490A1E00B86CAD /* HTTPAuthenticationRequest.m in Sources */,
 				2915540517490A1E00B86CAD /* HTTPConnection.m in Sources */,
 				2915540617490A1E00B86CAD /* HTTPMessage.m in Sources */,
+				7DC19B0C1868D21800810BF7 /* VLCFirstStepsSixthPageViewController.m in Sources */,
 				2915540717490A1E00B86CAD /* HTTPServer.m in Sources */,
 				2915540817490A1E00B86CAD /* MultipartFormDataParser.m in Sources */,
 				2915540917490A1E00B86CAD /* MultipartMessageHeader.m in Sources */,
@@ -2232,12 +2340,14 @@
 				2915542817490A9C00B86CAD /* DDTTYLogger.m in Sources */,
 				2915542917490A9C00B86CAD /* ContextFilterLogFormatter.m in Sources */,
 				2915542A17490A9C00B86CAD /* DispatchQueueLogFormatter.m in Sources */,
+				7DC19B051868D1C400810BF7 /* VLCFirstStepsFifthPageViewController.m in Sources */,
 				2915543B17490B9C00B86CAD /* HTTPAsyncFileResponse.m in Sources */,
 				2915543C17490B9C00B86CAD /* HTTPDataResponse.m in Sources */,
 				2915543D17490B9C00B86CAD /* HTTPDynamicFileResponse.m in Sources */,
 				9BADAF45185FBD9D00108BD8 /* VLCFrostedGlasView.m in Sources */,
 				2915543E17490B9C00B86CAD /* HTTPErrorResponse.m in Sources */,
 				2915543F17490B9C00B86CAD /* HTTPFileResponse.m in Sources */,
+				7DC19AFC1868CFA300810BF7 /* VLCFirstStepsFourthPageViewController.m in Sources */,
 				2915544017490B9C00B86CAD /* HTTPRedirectResponse.m in Sources */,
 				2915544117490B9C00B86CAD /* WebSocket.m in Sources */,
 				7D6B08EB174D65B500A05173 /* IASKAppSettingsViewController.m in Sources */,
@@ -2255,6 +2365,7 @@
 				7D6B08F6174D65B500A05173 /* IASKSlider.m in Sources */,
 				7D6B08F7174D65B500A05173 /* IASKSwitch.m in Sources */,
 				7D6B08F8174D65B500A05173 /* IASKTextField.m in Sources */,
+				7DC19ADF1868C7BB00810BF7 /* VLCFirstStepsViewController.m in Sources */,
 				7D31001D17B64AE100E6516D /* GHRevealViewController.m in Sources */,
 				7DC72D6317B7ED24008A26D0 /* WhiteRaccoon.m in Sources */,
 				7D37848F183A98B6009EE944 /* VLCMovieViewController.m in Sources */,
@@ -2266,6 +2377,7 @@
 				7D3784A1183A98EB009EE944 /* VLCBugreporter.m in Sources */,
 				7D3784A6183A98F5009EE944 /* VLCAboutViewController.m in Sources */,
 				7D3784A7183A98F5009EE944 /* VLCSettingsController.m in Sources */,
+				7DC19AE41868C8EC00810BF7 /* VLCFirstStepsFirstPageViewController.m in Sources */,
 				7D3784AD183A9906009EE944 /* VLCDropboxController.m in Sources */,
 				7D3784AE183A9906009EE944 /* VLCDropboxTableViewController.m in Sources */,
 				7D3784BE183A9938009EE944 /* UIBarButtonItem+Theme.m in Sources */,
@@ -2285,6 +2397,7 @@
 				7D30F3C3183AB24C00FFC021 /* VLCHTTPFileDownloader.m in Sources */,
 				7D30F3C4183AB24C00FFC021 /* VLCHTTPUploaderController.m in Sources */,
 				7D30F3C7183AB26F00FFC021 /* VLCOpenNetworkStreamViewController.m in Sources */,
+				7DC19AF21868CDAD00810BF7 /* VLCFirstStepsThirdPageViewController.m in Sources */,
 				7D30F3CA183AB27A00FFC021 /* VLCDownloadViewController.m in Sources */,
 				7D30F3CD183AB29300FFC021 /* VLCMenuTableViewController.m in Sources */,
 				7D30F3D0183AB2AC00FFC021 /* VLCMediaFileDiscoverer.m in Sources */,
@@ -2296,6 +2409,7 @@
 				7D30F3E2183AB33200FFC021 /* VLCSidebarViewCell.m in Sources */,
 				7D30F3EA183AB34200FFC021 /* VLCGoogleDriveController.m in Sources */,
 				9B088308183D7BEC004B5C2A /* VLCCloudStorageTableViewController.m in Sources */,
+				7DC19AE91868C90700810BF7 /* VLCFirstStepsSecondPageViewController.m in Sources */,
 				7D30F3EC183AB34200FFC021 /* VLCGoogleDriveTableViewController.m in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;