commit 0d97260118da6b3ea00a8776a98f0a3bfd00ea4a Author: Paul DiPietro Date: Fri Sep 6 15:03:00 2019 -0400 Initial commit diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..ac807cb --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,19 @@ +## Submission description + +_Use this area to describe your submission. Screenshots are appreciated and GIFs (with a hard "g") or video clips will get bonus points!_ + +### What went well + +_This is self-explanatory. Let us know what you liked about using the CarouselView when creating this submission._ + +### What didn't go well + +_What didn't go well, and why? How can we improve it? Please provide as much detail as possible!_ + +### Missing or desired things + +_Fill this with any missing or desired things and how they impact you._ + +### Anything else + +_If we missed anything, feel free to mention it here._ diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c4e3802 --- /dev/null +++ b/.gitignore @@ -0,0 +1,68 @@ +bin +obj +classic_bin +classic_obj +*.dll +*.mdb +*.exe +*.log +*.userprefs +*.suo +_docs.xml +UpgradeLog* +docs/*.xml +.nuspec/*.nupkg +*UpgradeReport* +*.user +*.DS_Store +*.ide +.vs +*.designer.cs +*project.lock.json +!*ControlResources*.designer.cs +!*Resources.Designer.cs +!Xamarin.Forms.VSTemplate/**/*.designer.cs +!NuGet.exe +*test-results* +*/PerfLogs/* +*.sap +/packages +!.xamarin-component/** +*.xam +Components/ +!GooglePlayServices/** +.irb-history +screenshot_* +!Xamarin.Forms.Addin/libs/** +!Xamarin.Forms.Addin/Packages/Xamarin.Forms.*.nupkg +*.remove +*/.metadata/* +AndroidNative/FormsViewGroup/gen/com/xamarin/formsviewgroup/R.java +AndroidNative/FormsViewGroup/gen/com/xamarin/formsviewgroup/BuildConfig.java +*.psess +TestResults/ +Xamarin.Forms.UITest.Validator/UITestCoverage/index.html +!Xamarin.Forms.UITest.TestCloud/test-cloud.exe +Xamarin.Forms.ControlGallery.Windows/AppPackages/ +Xamarin.Forms.ControlGallery.WindowsPhone/AppPackages/ +Xamarin.Forms.ControlGallery.WindowsUniversal/AppPackages/ +Xamarin.Forms.ControlGallery.WindowsUniversal/BundleArtifacts/ +Xamarin.Forms.Controls/secrets.txt +Xamarin.Forms.Controls/controlgallery.config +Xamarin.Forms.ControlGallery.Android/Properties/MapsKey.cs +*.tss +*.bak +AndroidNative/local.properties +AndroidNative/FormsViewGroup/build/ +AndroidNative/build/ +AndroidNative/.gradle/ +AndroidNative/gradlew +AndroidNative/gradlew.bat +!EmbeddingTestBeds/Embedding.iOS/*.designer.cs +*.nupkg +*.pdb +# temporary vim files +*.swp +tools/ +!tools/mdoc/**/* +caketools/ \ No newline at end of file diff --git a/CarouselViewChallenge.sln b/CarouselViewChallenge.sln new file mode 100644 index 0000000..ca08a3c --- /dev/null +++ b/CarouselViewChallenge.sln @@ -0,0 +1,83 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29209.152 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CarouselViewChallenge.Android", "CarouselViewChallenge\CarouselViewChallenge.Android\CarouselViewChallenge.Android.csproj", "{A634DE77-6F68-4579-B55C-9D8C48A02685}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CarouselViewChallenge.iOS", "CarouselViewChallenge\CarouselViewChallenge.iOS\CarouselViewChallenge.iOS.csproj", "{E981DF49-12EE-46EC-9F08-D3FC5F4FF693}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CarouselViewChallenge", "CarouselViewChallenge\CarouselViewChallenge\CarouselViewChallenge.csproj", "{A9F8B9B3-719F-4F40-9044-924E7B921409}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|iPhone = Debug|iPhone + Debug|iPhoneSimulator = Debug|iPhoneSimulator + Release|Any CPU = Release|Any CPU + Release|iPhone = Release|iPhone + Release|iPhoneSimulator = Release|iPhoneSimulator + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A634DE77-6F68-4579-B55C-9D8C48A02685}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A634DE77-6F68-4579-B55C-9D8C48A02685}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A634DE77-6F68-4579-B55C-9D8C48A02685}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {A634DE77-6F68-4579-B55C-9D8C48A02685}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {A634DE77-6F68-4579-B55C-9D8C48A02685}.Debug|iPhone.Build.0 = Debug|Any CPU + {A634DE77-6F68-4579-B55C-9D8C48A02685}.Debug|iPhone.Deploy.0 = Debug|Any CPU + {A634DE77-6F68-4579-B55C-9D8C48A02685}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {A634DE77-6F68-4579-B55C-9D8C48A02685}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {A634DE77-6F68-4579-B55C-9D8C48A02685}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU + {A634DE77-6F68-4579-B55C-9D8C48A02685}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A634DE77-6F68-4579-B55C-9D8C48A02685}.Release|Any CPU.Build.0 = Release|Any CPU + {A634DE77-6F68-4579-B55C-9D8C48A02685}.Release|Any CPU.Deploy.0 = Release|Any CPU + {A634DE77-6F68-4579-B55C-9D8C48A02685}.Release|iPhone.ActiveCfg = Release|Any CPU + {A634DE77-6F68-4579-B55C-9D8C48A02685}.Release|iPhone.Build.0 = Release|Any CPU + {A634DE77-6F68-4579-B55C-9D8C48A02685}.Release|iPhone.Deploy.0 = Release|Any CPU + {A634DE77-6F68-4579-B55C-9D8C48A02685}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {A634DE77-6F68-4579-B55C-9D8C48A02685}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {A634DE77-6F68-4579-B55C-9D8C48A02685}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU + {E981DF49-12EE-46EC-9F08-D3FC5F4FF693}.Debug|Any CPU.ActiveCfg = Debug|iPhoneSimulator + {E981DF49-12EE-46EC-9F08-D3FC5F4FF693}.Debug|Any CPU.Build.0 = Debug|iPhoneSimulator + {E981DF49-12EE-46EC-9F08-D3FC5F4FF693}.Debug|Any CPU.Deploy.0 = Debug|iPhoneSimulator + {E981DF49-12EE-46EC-9F08-D3FC5F4FF693}.Debug|iPhone.ActiveCfg = Debug|iPhone + {E981DF49-12EE-46EC-9F08-D3FC5F4FF693}.Debug|iPhone.Build.0 = Debug|iPhone + {E981DF49-12EE-46EC-9F08-D3FC5F4FF693}.Debug|iPhone.Deploy.0 = Debug|iPhone + {E981DF49-12EE-46EC-9F08-D3FC5F4FF693}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator + {E981DF49-12EE-46EC-9F08-D3FC5F4FF693}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator + {E981DF49-12EE-46EC-9F08-D3FC5F4FF693}.Debug|iPhoneSimulator.Deploy.0 = Debug|iPhoneSimulator + {E981DF49-12EE-46EC-9F08-D3FC5F4FF693}.Release|Any CPU.ActiveCfg = Release|iPhone + {E981DF49-12EE-46EC-9F08-D3FC5F4FF693}.Release|Any CPU.Build.0 = Release|iPhone + {E981DF49-12EE-46EC-9F08-D3FC5F4FF693}.Release|Any CPU.Deploy.0 = Release|iPhone + {E981DF49-12EE-46EC-9F08-D3FC5F4FF693}.Release|iPhone.ActiveCfg = Release|iPhone + {E981DF49-12EE-46EC-9F08-D3FC5F4FF693}.Release|iPhone.Build.0 = Release|iPhone + {E981DF49-12EE-46EC-9F08-D3FC5F4FF693}.Release|iPhone.Deploy.0 = Release|iPhone + {E981DF49-12EE-46EC-9F08-D3FC5F4FF693}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator + {E981DF49-12EE-46EC-9F08-D3FC5F4FF693}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator + {E981DF49-12EE-46EC-9F08-D3FC5F4FF693}.Release|iPhoneSimulator.Deploy.0 = Release|iPhoneSimulator + {A9F8B9B3-719F-4F40-9044-924E7B921409}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A9F8B9B3-719F-4F40-9044-924E7B921409}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A9F8B9B3-719F-4F40-9044-924E7B921409}.Debug|Any CPU.Deploy.0 = Debug|Any CPU + {A9F8B9B3-719F-4F40-9044-924E7B921409}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {A9F8B9B3-719F-4F40-9044-924E7B921409}.Debug|iPhone.Build.0 = Debug|Any CPU + {A9F8B9B3-719F-4F40-9044-924E7B921409}.Debug|iPhone.Deploy.0 = Debug|Any CPU + {A9F8B9B3-719F-4F40-9044-924E7B921409}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {A9F8B9B3-719F-4F40-9044-924E7B921409}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {A9F8B9B3-719F-4F40-9044-924E7B921409}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU + {A9F8B9B3-719F-4F40-9044-924E7B921409}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A9F8B9B3-719F-4F40-9044-924E7B921409}.Release|Any CPU.Build.0 = Release|Any CPU + {A9F8B9B3-719F-4F40-9044-924E7B921409}.Release|Any CPU.Deploy.0 = Release|Any CPU + {A9F8B9B3-719F-4F40-9044-924E7B921409}.Release|iPhone.ActiveCfg = Release|Any CPU + {A9F8B9B3-719F-4F40-9044-924E7B921409}.Release|iPhone.Build.0 = Release|Any CPU + {A9F8B9B3-719F-4F40-9044-924E7B921409}.Release|iPhone.Deploy.0 = Release|Any CPU + {A9F8B9B3-719F-4F40-9044-924E7B921409}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {A9F8B9B3-719F-4F40-9044-924E7B921409}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {A9F8B9B3-719F-4F40-9044-924E7B921409}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {65458068-1955-4495-8B1B-E047791B91CB} + EndGlobalSection +EndGlobal diff --git a/CarouselViewChallenge/CarouselViewChallenge.Android/Assets/AboutAssets.txt b/CarouselViewChallenge/CarouselViewChallenge.Android/Assets/AboutAssets.txt new file mode 100644 index 0000000..072563f --- /dev/null +++ b/CarouselViewChallenge/CarouselViewChallenge.Android/Assets/AboutAssets.txt @@ -0,0 +1,19 @@ +Any raw assets you want to be deployed with your application can be placed in +this directory (and child directories) and given a Build Action of "AndroidAsset". + +These files will be deployed with your package and will be accessible using Android's +AssetManager, like this: + +public class ReadAsset : Activity +{ + protected override void OnCreate (Bundle bundle) + { + base.OnCreate (bundle); + + InputStream input = Assets.Open ("my_asset.txt"); + } +} + +Additionally, some Android functions will automatically load asset files: + +Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf"); diff --git a/CarouselViewChallenge/CarouselViewChallenge.Android/CarouselViewChallenge.Android.csproj b/CarouselViewChallenge/CarouselViewChallenge.Android/CarouselViewChallenge.Android.csproj new file mode 100644 index 0000000..88bda65 --- /dev/null +++ b/CarouselViewChallenge/CarouselViewChallenge.Android/CarouselViewChallenge.Android.csproj @@ -0,0 +1,104 @@ + + + + Debug + AnyCPU + {A634DE77-6F68-4579-B55C-9D8C48A02685} + {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + {6968b3a4-1835-46a3-ac5c-1ae33b475983} + Library + CarouselViewChallenge.Droid + CarouselViewChallenge.Android + True + Resources\Resource.designer.cs + Resource + Properties\AndroidManifest.xml + Resources + Assets + false + v9.0 + true + true + Xamarin.Android.Net.AndroidClientHandler + + + + + true + portable + false + bin\Debug + DEBUG; + prompt + 4 + None + + + true + portable + true + bin\Release + prompt + 4 + true + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {1AD32EAF-CE1F-497F-8598-87F19CDA3D10} + CarouselViewChallenge + + + + \ No newline at end of file diff --git a/CarouselViewChallenge/CarouselViewChallenge.Android/MainActivity.cs b/CarouselViewChallenge/CarouselViewChallenge.Android/MainActivity.cs new file mode 100644 index 0000000..fd4e22a --- /dev/null +++ b/CarouselViewChallenge/CarouselViewChallenge.Android/MainActivity.cs @@ -0,0 +1,34 @@ +using System; + +using Android.App; +using Android.Content.PM; +using Android.Runtime; +using Android.Views; +using Android.Widget; +using Android.OS; + +namespace CarouselViewChallenge.Droid +{ + [Activity(Label = "CarouselViewChallenge", Icon = "@mipmap/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)] + public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity + { + protected override void OnCreate(Bundle savedInstanceState) + { + TabLayoutResource = Resource.Layout.Tabbar; + ToolbarResource = Resource.Layout.Toolbar; + + base.OnCreate(savedInstanceState); + + global::Xamarin.Forms.Forms.SetFlags("CollectionView_Experimental"); + Xamarin.Essentials.Platform.Init(this, savedInstanceState); + global::Xamarin.Forms.Forms.Init(this, savedInstanceState); + LoadApplication(new App()); + } + public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults) + { + Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults); + + base.OnRequestPermissionsResult(requestCode, permissions, grantResults); + } + } +} \ No newline at end of file diff --git a/CarouselViewChallenge/CarouselViewChallenge.Android/Properties/AndroidManifest.xml b/CarouselViewChallenge/CarouselViewChallenge.Android/Properties/AndroidManifest.xml new file mode 100644 index 0000000..f37a67c --- /dev/null +++ b/CarouselViewChallenge/CarouselViewChallenge.Android/Properties/AndroidManifest.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/CarouselViewChallenge/CarouselViewChallenge.Android/Properties/AssemblyInfo.cs b/CarouselViewChallenge/CarouselViewChallenge.Android/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..cd2dcac --- /dev/null +++ b/CarouselViewChallenge/CarouselViewChallenge.Android/Properties/AssemblyInfo.cs @@ -0,0 +1,34 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using Android.App; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("CarouselViewChallenge.Android")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("CarouselViewChallenge.Android")] +[assembly: AssemblyCopyright("Copyright © 2014")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] +[assembly: ComVisible(false)] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] + +// Add some common permissions, these can be removed if not needed +[assembly: UsesPermission(Android.Manifest.Permission.Internet)] +[assembly: UsesPermission(Android.Manifest.Permission.WriteExternalStorage)] diff --git a/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/AboutResources.txt b/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/AboutResources.txt new file mode 100644 index 0000000..cb30f20 --- /dev/null +++ b/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/AboutResources.txt @@ -0,0 +1,50 @@ +Images, layout descriptions, binary blobs and string dictionaries can be included +in your application as resource files. Various Android APIs are designed to +operate on the resource IDs instead of dealing with images, strings or binary blobs +directly. + +For example, a sample Android app that contains a user interface layout (main.xml), +an internationalization string table (strings.xml) and some icons (drawable-XXX/icon.png) +would keep its resources in the "Resources" directory of the application: + +Resources/ + drawable-hdpi/ + icon.png + + drawable-ldpi/ + icon.png + + drawable-mdpi/ + icon.png + + layout/ + main.xml + + values/ + strings.xml + +In order to get the build system to recognize Android resources, set the build action to +"AndroidResource". The native Android APIs do not operate directly with filenames, but +instead operate on resource IDs. When you compile an Android application that uses resources, +the build system will package the resources for distribution and generate a class called +"Resource" that contains the tokens for each one of the resources included. For example, +for the above Resources layout, this is what the Resource class would expose: + +public class Resource { + public class drawable { + public const int icon = 0x123; + } + + public class layout { + public const int main = 0x456; + } + + public class strings { + public const int first_string = 0xabc; + public const int second_string = 0xbcd; + } +} + +You would then use R.drawable.icon to reference the drawable/icon.png file, or Resource.layout.main +to reference the layout/main.xml file, or Resource.strings.first_string to reference the first +string in the dictionary file values/strings.xml. diff --git a/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/drawable/tab_about.png b/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/drawable/tab_about.png new file mode 100644 index 0000000..4884525 Binary files /dev/null and b/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/drawable/tab_about.png differ diff --git a/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/drawable/tab_feed.png b/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/drawable/tab_feed.png new file mode 100644 index 0000000..fdf6daf Binary files /dev/null and b/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/drawable/tab_feed.png differ diff --git a/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/drawable/xamarin_logo.png b/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/drawable/xamarin_logo.png new file mode 100644 index 0000000..b36d00e Binary files /dev/null and b/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/drawable/xamarin_logo.png differ diff --git a/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/layout/Tabbar.xml b/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/layout/Tabbar.xml new file mode 100644 index 0000000..ad1f87d --- /dev/null +++ b/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/layout/Tabbar.xml @@ -0,0 +1,11 @@ + + diff --git a/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/layout/Toolbar.xml b/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/layout/Toolbar.xml new file mode 100644 index 0000000..aabd0a3 --- /dev/null +++ b/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/layout/Toolbar.xml @@ -0,0 +1,9 @@ + + diff --git a/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/mipmap-anydpi-v26/icon.xml b/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/mipmap-anydpi-v26/icon.xml new file mode 100644 index 0000000..88d1d0a --- /dev/null +++ b/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/mipmap-anydpi-v26/icon.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/mipmap-anydpi-v26/icon_round.xml b/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/mipmap-anydpi-v26/icon_round.xml new file mode 100644 index 0000000..88d1d0a --- /dev/null +++ b/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/mipmap-anydpi-v26/icon_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/mipmap-hdpi/icon.png b/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/mipmap-hdpi/icon.png new file mode 100644 index 0000000..4623ca2 Binary files /dev/null and b/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/mipmap-hdpi/icon.png differ diff --git a/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/mipmap-hdpi/launcher_foreground.png b/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/mipmap-hdpi/launcher_foreground.png new file mode 100644 index 0000000..a89e5bb Binary files /dev/null and b/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/mipmap-hdpi/launcher_foreground.png differ diff --git a/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/mipmap-mdpi/icon.png b/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/mipmap-mdpi/icon.png new file mode 100644 index 0000000..9b1d25e Binary files /dev/null and b/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/mipmap-mdpi/icon.png differ diff --git a/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/mipmap-mdpi/launcher_foreground.png b/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/mipmap-mdpi/launcher_foreground.png new file mode 100644 index 0000000..431a8a0 Binary files /dev/null and b/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/mipmap-mdpi/launcher_foreground.png differ diff --git a/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/mipmap-xhdpi/icon.png b/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/mipmap-xhdpi/icon.png new file mode 100644 index 0000000..844dfe5 Binary files /dev/null and b/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/mipmap-xhdpi/icon.png differ diff --git a/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/mipmap-xhdpi/launcher_foreground.png b/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/mipmap-xhdpi/launcher_foreground.png new file mode 100644 index 0000000..9e9e4f8 Binary files /dev/null and b/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/mipmap-xhdpi/launcher_foreground.png differ diff --git a/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/mipmap-xxhdpi/icon.png b/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/mipmap-xxhdpi/icon.png new file mode 100644 index 0000000..e20ec9a Binary files /dev/null and b/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/mipmap-xxhdpi/icon.png differ diff --git a/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/mipmap-xxhdpi/launcher_foreground.png b/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/mipmap-xxhdpi/launcher_foreground.png new file mode 100644 index 0000000..5f1e135 Binary files /dev/null and b/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/mipmap-xxhdpi/launcher_foreground.png differ diff --git a/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/mipmap-xxxhdpi/icon.png b/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/mipmap-xxxhdpi/icon.png new file mode 100644 index 0000000..8a08bf7 Binary files /dev/null and b/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/mipmap-xxxhdpi/icon.png differ diff --git a/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/mipmap-xxxhdpi/launcher_foreground.png b/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/mipmap-xxxhdpi/launcher_foreground.png new file mode 100644 index 0000000..aca9f8d Binary files /dev/null and b/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/mipmap-xxxhdpi/launcher_foreground.png differ diff --git a/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/values/colors.xml b/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/values/colors.xml new file mode 100644 index 0000000..d9f6e0b --- /dev/null +++ b/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/values/colors.xml @@ -0,0 +1,7 @@ + + + #FFFFFF + #3F51B5 + #303F9F + #FF4081 + diff --git a/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/values/styles.xml b/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/values/styles.xml new file mode 100644 index 0000000..17a2eb0 --- /dev/null +++ b/CarouselViewChallenge/CarouselViewChallenge.Android/Resources/values/styles.xml @@ -0,0 +1,30 @@ + + + + + + + + + diff --git a/CarouselViewChallenge/CarouselViewChallenge.iOS/AppDelegate.cs b/CarouselViewChallenge/CarouselViewChallenge.iOS/AppDelegate.cs new file mode 100644 index 0000000..949500f --- /dev/null +++ b/CarouselViewChallenge/CarouselViewChallenge.iOS/AppDelegate.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +using Foundation; +using UIKit; + +namespace CarouselViewChallenge.iOS +{ + // The UIApplicationDelegate for the application. This class is responsible for launching the + // User Interface of the application, as well as listening (and optionally responding) to + // application events from iOS. + [Register("AppDelegate")] + public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate + { + // + // This method is invoked when the application has loaded and is ready to run. In this + // method you should instantiate the window, load the UI into it and then make the window + // visible. + // + // You have 17 seconds to return from this method, or iOS will terminate your application. + // + public override bool FinishedLaunching(UIApplication app, NSDictionary options) + { + global::Xamarin.Forms.Forms.SetFlags("CollectionView_Experimental"); + global::Xamarin.Forms.Forms.Init(); + LoadApplication(new App()); + + return base.FinishedLaunching(app, options); + } + } +} diff --git a/CarouselViewChallenge/CarouselViewChallenge.iOS/Assets.xcassets/AppIcon.appiconset/Contents.json b/CarouselViewChallenge/CarouselViewChallenge.iOS/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..98f4d03 --- /dev/null +++ b/CarouselViewChallenge/CarouselViewChallenge.iOS/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,117 @@ +{ + "images": [ + { + "scale": "2x", + "size": "20x20", + "idiom": "iphone", + "filename": "Icon40.png" + }, + { + "scale": "3x", + "size": "20x20", + "idiom": "iphone", + "filename": "Icon60.png" + }, + { + "scale": "2x", + "size": "29x29", + "idiom": "iphone", + "filename": "Icon58.png" + }, + { + "scale": "3x", + "size": "29x29", + "idiom": "iphone", + "filename": "Icon87.png" + }, + { + "scale": "2x", + "size": "40x40", + "idiom": "iphone", + "filename": "Icon80.png" + }, + { + "scale": "3x", + "size": "40x40", + "idiom": "iphone", + "filename": "Icon120.png" + }, + { + "scale": "2x", + "size": "60x60", + "idiom": "iphone", + "filename": "Icon120.png" + }, + { + "scale": "3x", + "size": "60x60", + "idiom": "iphone", + "filename": "Icon180.png" + }, + { + "scale": "1x", + "size": "20x20", + "idiom": "ipad", + "filename": "Icon20.png" + }, + { + "scale": "2x", + "size": "20x20", + "idiom": "ipad", + "filename": "Icon40.png" + }, + { + "scale": "1x", + "size": "29x29", + "idiom": "ipad", + "filename": "Icon29.png" + }, + { + "scale": "2x", + "size": "29x29", + "idiom": "ipad", + "filename": "Icon58.png" + }, + { + "scale": "1x", + "size": "40x40", + "idiom": "ipad", + "filename": "Icon40.png" + }, + { + "scale": "2x", + "size": "40x40", + "idiom": "ipad", + "filename": "Icon80.png" + }, + { + "scale": "1x", + "size": "76x76", + "idiom": "ipad", + "filename": "Icon76.png" + }, + { + "scale": "2x", + "size": "76x76", + "idiom": "ipad", + "filename": "Icon152.png" + }, + { + "scale": "2x", + "size": "83.5x83.5", + "idiom": "ipad", + "filename": "Icon167.png" + }, + { + "scale": "1x", + "size": "1024x1024", + "idiom": "ios-marketing", + "filename": "Icon1024.png" + } + ], + "properties": {}, + "info": { + "version": 1, + "author": "xcode" + } +} \ No newline at end of file diff --git a/CarouselViewChallenge/CarouselViewChallenge.iOS/Assets.xcassets/AppIcon.appiconset/Icon1024.png b/CarouselViewChallenge/CarouselViewChallenge.iOS/Assets.xcassets/AppIcon.appiconset/Icon1024.png new file mode 100644 index 0000000..9174c98 Binary files /dev/null and b/CarouselViewChallenge/CarouselViewChallenge.iOS/Assets.xcassets/AppIcon.appiconset/Icon1024.png differ diff --git a/CarouselViewChallenge/CarouselViewChallenge.iOS/Assets.xcassets/AppIcon.appiconset/Icon120.png b/CarouselViewChallenge/CarouselViewChallenge.iOS/Assets.xcassets/AppIcon.appiconset/Icon120.png new file mode 100644 index 0000000..9c60a17 Binary files /dev/null and b/CarouselViewChallenge/CarouselViewChallenge.iOS/Assets.xcassets/AppIcon.appiconset/Icon120.png differ diff --git a/CarouselViewChallenge/CarouselViewChallenge.iOS/Assets.xcassets/AppIcon.appiconset/Icon152.png b/CarouselViewChallenge/CarouselViewChallenge.iOS/Assets.xcassets/AppIcon.appiconset/Icon152.png new file mode 100644 index 0000000..448d6ef Binary files /dev/null and b/CarouselViewChallenge/CarouselViewChallenge.iOS/Assets.xcassets/AppIcon.appiconset/Icon152.png differ diff --git a/CarouselViewChallenge/CarouselViewChallenge.iOS/Assets.xcassets/AppIcon.appiconset/Icon167.png b/CarouselViewChallenge/CarouselViewChallenge.iOS/Assets.xcassets/AppIcon.appiconset/Icon167.png new file mode 100644 index 0000000..8524768 Binary files /dev/null and b/CarouselViewChallenge/CarouselViewChallenge.iOS/Assets.xcassets/AppIcon.appiconset/Icon167.png differ diff --git a/CarouselViewChallenge/CarouselViewChallenge.iOS/Assets.xcassets/AppIcon.appiconset/Icon180.png b/CarouselViewChallenge/CarouselViewChallenge.iOS/Assets.xcassets/AppIcon.appiconset/Icon180.png new file mode 100644 index 0000000..60a6470 Binary files /dev/null and b/CarouselViewChallenge/CarouselViewChallenge.iOS/Assets.xcassets/AppIcon.appiconset/Icon180.png differ diff --git a/CarouselViewChallenge/CarouselViewChallenge.iOS/Assets.xcassets/AppIcon.appiconset/Icon20.png b/CarouselViewChallenge/CarouselViewChallenge.iOS/Assets.xcassets/AppIcon.appiconset/Icon20.png new file mode 100644 index 0000000..45268a6 Binary files /dev/null and b/CarouselViewChallenge/CarouselViewChallenge.iOS/Assets.xcassets/AppIcon.appiconset/Icon20.png differ diff --git a/CarouselViewChallenge/CarouselViewChallenge.iOS/Assets.xcassets/AppIcon.appiconset/Icon29.png b/CarouselViewChallenge/CarouselViewChallenge.iOS/Assets.xcassets/AppIcon.appiconset/Icon29.png new file mode 100644 index 0000000..6a6c77a Binary files /dev/null and b/CarouselViewChallenge/CarouselViewChallenge.iOS/Assets.xcassets/AppIcon.appiconset/Icon29.png differ diff --git a/CarouselViewChallenge/CarouselViewChallenge.iOS/Assets.xcassets/AppIcon.appiconset/Icon40.png b/CarouselViewChallenge/CarouselViewChallenge.iOS/Assets.xcassets/AppIcon.appiconset/Icon40.png new file mode 100644 index 0000000..cc7edcf Binary files /dev/null and b/CarouselViewChallenge/CarouselViewChallenge.iOS/Assets.xcassets/AppIcon.appiconset/Icon40.png differ diff --git a/CarouselViewChallenge/CarouselViewChallenge.iOS/Assets.xcassets/AppIcon.appiconset/Icon58.png b/CarouselViewChallenge/CarouselViewChallenge.iOS/Assets.xcassets/AppIcon.appiconset/Icon58.png new file mode 100644 index 0000000..1ad04f0 Binary files /dev/null and b/CarouselViewChallenge/CarouselViewChallenge.iOS/Assets.xcassets/AppIcon.appiconset/Icon58.png differ diff --git a/CarouselViewChallenge/CarouselViewChallenge.iOS/Assets.xcassets/AppIcon.appiconset/Icon60.png b/CarouselViewChallenge/CarouselViewChallenge.iOS/Assets.xcassets/AppIcon.appiconset/Icon60.png new file mode 100644 index 0000000..2dd5262 Binary files /dev/null and b/CarouselViewChallenge/CarouselViewChallenge.iOS/Assets.xcassets/AppIcon.appiconset/Icon60.png differ diff --git a/CarouselViewChallenge/CarouselViewChallenge.iOS/Assets.xcassets/AppIcon.appiconset/Icon76.png b/CarouselViewChallenge/CarouselViewChallenge.iOS/Assets.xcassets/AppIcon.appiconset/Icon76.png new file mode 100644 index 0000000..b058cae Binary files /dev/null and b/CarouselViewChallenge/CarouselViewChallenge.iOS/Assets.xcassets/AppIcon.appiconset/Icon76.png differ diff --git a/CarouselViewChallenge/CarouselViewChallenge.iOS/Assets.xcassets/AppIcon.appiconset/Icon80.png b/CarouselViewChallenge/CarouselViewChallenge.iOS/Assets.xcassets/AppIcon.appiconset/Icon80.png new file mode 100644 index 0000000..02e47a2 Binary files /dev/null and b/CarouselViewChallenge/CarouselViewChallenge.iOS/Assets.xcassets/AppIcon.appiconset/Icon80.png differ diff --git a/CarouselViewChallenge/CarouselViewChallenge.iOS/Assets.xcassets/AppIcon.appiconset/Icon87.png b/CarouselViewChallenge/CarouselViewChallenge.iOS/Assets.xcassets/AppIcon.appiconset/Icon87.png new file mode 100644 index 0000000..4954a4b Binary files /dev/null and b/CarouselViewChallenge/CarouselViewChallenge.iOS/Assets.xcassets/AppIcon.appiconset/Icon87.png differ diff --git a/CarouselViewChallenge/CarouselViewChallenge.iOS/CarouselViewChallenge.iOS.csproj b/CarouselViewChallenge/CarouselViewChallenge.iOS/CarouselViewChallenge.iOS.csproj new file mode 100644 index 0000000..66fa550 --- /dev/null +++ b/CarouselViewChallenge/CarouselViewChallenge.iOS/CarouselViewChallenge.iOS.csproj @@ -0,0 +1,142 @@ + + + + Debug + iPhoneSimulator + 8.0.30703 + 2.0 + {E981DF49-12EE-46EC-9F08-D3FC5F4FF693} + {FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + {89a4fe7c-635d-49c9-8d8c-5cd363c0d68d} + Exe + CarouselViewChallenge.iOS + Resources + CarouselViewChallenge.iOS + true + NSUrlSessionHandler + + + true + full + false + bin\iPhoneSimulator\Debug + DEBUG + prompt + 4 + x86_64 + None + true + + + none + true + bin\iPhoneSimulator\Release + prompt + 4 + None + x86_64 + + + true + full + false + bin\iPhone\Debug + DEBUG + prompt + 4 + ARM64 + iPhone Developer + true + Entitlements.plist + + + none + true + bin\iPhone\Release + prompt + 4 + ARM64 + iPhone Developer + Entitlements.plist + + + + + + + + + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + {1AD32EAF-CE1F-497F-8598-87F19CDA3D10} + CarouselViewChallenge + + + \ No newline at end of file diff --git a/CarouselViewChallenge/CarouselViewChallenge.iOS/Entitlements.plist b/CarouselViewChallenge/CarouselViewChallenge.iOS/Entitlements.plist new file mode 100644 index 0000000..e9a3005 --- /dev/null +++ b/CarouselViewChallenge/CarouselViewChallenge.iOS/Entitlements.plist @@ -0,0 +1,7 @@ + + + + + + + diff --git a/CarouselViewChallenge/CarouselViewChallenge.iOS/Info.plist b/CarouselViewChallenge/CarouselViewChallenge.iOS/Info.plist new file mode 100644 index 0000000..9354ef2 --- /dev/null +++ b/CarouselViewChallenge/CarouselViewChallenge.iOS/Info.plist @@ -0,0 +1,38 @@ + + + + + UIDeviceFamily + + 1 + 2 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + MinimumOSVersion + 8.0 + CFBundleDisplayName + CarouselViewChallenge + CFBundleIdentifier + com.companyname.CarouselViewChallenge + CFBundleVersion + 1.0 + UILaunchStoryboardName + LaunchScreen + CFBundleName + CarouselViewChallenge + XSAppIconAssets + Assets.xcassets/AppIcon.appiconset + + diff --git a/CarouselViewChallenge/CarouselViewChallenge.iOS/Main.cs b/CarouselViewChallenge/CarouselViewChallenge.iOS/Main.cs new file mode 100644 index 0000000..236ae4f --- /dev/null +++ b/CarouselViewChallenge/CarouselViewChallenge.iOS/Main.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +using Foundation; +using UIKit; + +namespace CarouselViewChallenge.iOS +{ + public class Application + { + // This is the main entry point of the application. + static void Main(string[] args) + { + // if you want to use a different Application Delegate class from "AppDelegate" + // you can specify it here. + UIApplication.Main(args, null, "AppDelegate"); + } + } +} diff --git a/CarouselViewChallenge/CarouselViewChallenge.iOS/Properties/AssemblyInfo.cs b/CarouselViewChallenge/CarouselViewChallenge.iOS/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..80fbdd4 --- /dev/null +++ b/CarouselViewChallenge/CarouselViewChallenge.iOS/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("CarouselViewChallenge.iOS")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("CarouselViewChallenge.iOS")] +[assembly: AssemblyCopyright("Copyright © 2014")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("72bdc44f-c588-44f3-b6df-9aace7daafdd")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/Default-568h@2x.png b/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/Default-568h@2x.png new file mode 100644 index 0000000..26c6461 Binary files /dev/null and b/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/Default-568h@2x.png differ diff --git a/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/Default-Portrait.png b/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/Default-Portrait.png new file mode 100644 index 0000000..5d0d1ab Binary files /dev/null and b/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/Default-Portrait.png differ diff --git a/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/Default-Portrait@2x.png b/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/Default-Portrait@2x.png new file mode 100644 index 0000000..0ee2688 Binary files /dev/null and b/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/Default-Portrait@2x.png differ diff --git a/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/Default.png b/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/Default.png new file mode 100644 index 0000000..b74643c Binary files /dev/null and b/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/Default.png differ diff --git a/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/Default@2x.png b/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/Default@2x.png new file mode 100644 index 0000000..dbd6bd3 Binary files /dev/null and b/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/Default@2x.png differ diff --git a/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/LaunchScreen.storyboard b/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/LaunchScreen.storyboard new file mode 100644 index 0000000..a639c2f --- /dev/null +++ b/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/LaunchScreen.storyboard @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/tab_about.png b/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/tab_about.png new file mode 100644 index 0000000..4884525 Binary files /dev/null and b/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/tab_about.png differ diff --git a/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/tab_about@2x.png b/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/tab_about@2x.png new file mode 100644 index 0000000..f9ba9f9 Binary files /dev/null and b/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/tab_about@2x.png differ diff --git a/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/tab_about@3x.png b/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/tab_about@3x.png new file mode 100644 index 0000000..fa470c2 Binary files /dev/null and b/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/tab_about@3x.png differ diff --git a/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/tab_feed.png b/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/tab_feed.png new file mode 100644 index 0000000..fdf6daf Binary files /dev/null and b/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/tab_feed.png differ diff --git a/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/tab_feed@2x.png b/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/tab_feed@2x.png new file mode 100644 index 0000000..845d96c Binary files /dev/null and b/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/tab_feed@2x.png differ diff --git a/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/tab_feed@3x.png b/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/tab_feed@3x.png new file mode 100644 index 0000000..812cf73 Binary files /dev/null and b/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/tab_feed@3x.png differ diff --git a/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/xamarin_logo.png b/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/xamarin_logo.png new file mode 100644 index 0000000..7d5007d Binary files /dev/null and b/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/xamarin_logo.png differ diff --git a/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/xamarin_logo@2x.png b/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/xamarin_logo@2x.png new file mode 100644 index 0000000..a5b9fc0 Binary files /dev/null and b/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/xamarin_logo@2x.png differ diff --git a/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/xamarin_logo@3x.png b/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/xamarin_logo@3x.png new file mode 100644 index 0000000..b36d00e Binary files /dev/null and b/CarouselViewChallenge/CarouselViewChallenge.iOS/Resources/xamarin_logo@3x.png differ diff --git a/CarouselViewChallenge/CarouselViewChallenge/App.xaml b/CarouselViewChallenge/CarouselViewChallenge/App.xaml new file mode 100644 index 0000000..f3469f1 --- /dev/null +++ b/CarouselViewChallenge/CarouselViewChallenge/App.xaml @@ -0,0 +1,10 @@ + + + + + \ No newline at end of file diff --git a/CarouselViewChallenge/CarouselViewChallenge/App.xaml.cs b/CarouselViewChallenge/CarouselViewChallenge/App.xaml.cs new file mode 100644 index 0000000..a2fadf8 --- /dev/null +++ b/CarouselViewChallenge/CarouselViewChallenge/App.xaml.cs @@ -0,0 +1,33 @@ +using System; +using Xamarin.Forms; +using Xamarin.Forms.Xaml; +using CarouselViewChallenge.Views; + +namespace CarouselViewChallenge +{ + public partial class App : Application + { + + public App() + { + InitializeComponent(); + + MainPage = new AppShell(); + } + + protected override void OnStart() + { + // Handle when your app starts + } + + protected override void OnSleep() + { + // Handle when your app sleeps + } + + protected override void OnResume() + { + // Handle when your app resumes + } + } +} diff --git a/CarouselViewChallenge/CarouselViewChallenge/AppShell.xaml b/CarouselViewChallenge/CarouselViewChallenge/AppShell.xaml new file mode 100644 index 0000000..7f8fdee --- /dev/null +++ b/CarouselViewChallenge/CarouselViewChallenge/AppShell.xaml @@ -0,0 +1,44 @@ + + + + + + + #2196F3 + +