Преглед изворни кода

Implement basic startup tutorial using preliminary graphics

l10n is yet todo
Felix Paul Kühne пре 11 година
родитељ
комит
82a2ba235e
32 измењених фајлова са 958 додато и 16 уклоњено
  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;