diff --git a/packages/shared_preferences/example/android.iml b/packages/shared_preferences/example/android.iml
deleted file mode 100644
index 462b903e05b6..000000000000
--- a/packages/shared_preferences/example/android.iml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/packages/shared_preferences/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/packages/shared_preferences/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
deleted file mode 100644
index 21a3cc14c74e..000000000000
--- a/packages/shared_preferences/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
diff --git a/packages/shared_preferences/example/ios/Runner.xcworkspace/contents.xcworkspacedata b/packages/shared_preferences/example/ios/Runner.xcworkspace/contents.xcworkspacedata
deleted file mode 100644
index 21a3cc14c74e..000000000000
--- a/packages/shared_preferences/example/ios/Runner.xcworkspace/contents.xcworkspacedata
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
diff --git a/packages/shared_preferences/example/shared_preferences_example.iml b/packages/shared_preferences/example/shared_preferences_example.iml
deleted file mode 100644
index 9d5dae19540c..000000000000
--- a/packages/shared_preferences/example/shared_preferences_example.iml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/packages/shared_preferences/CHANGELOG.md b/packages/shared_preferences/shared_preferences/CHANGELOG.md
similarity index 98%
rename from packages/shared_preferences/CHANGELOG.md
rename to packages/shared_preferences/shared_preferences/CHANGELOG.md
index 083d2b9b658a..15a50475078d 100644
--- a/packages/shared_preferences/CHANGELOG.md
+++ b/packages/shared_preferences/shared_preferences/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.5.4+7
+
+* Restructure the project for Web support.
+
## 0.5.4+6
* Add missing documentation and a lint to prevent further undocumented APIs.
diff --git a/packages/shared_preferences/LICENSE b/packages/shared_preferences/shared_preferences/LICENSE
similarity index 100%
rename from packages/shared_preferences/LICENSE
rename to packages/shared_preferences/shared_preferences/LICENSE
diff --git a/packages/shared_preferences/README.md b/packages/shared_preferences/shared_preferences/README.md
similarity index 100%
rename from packages/shared_preferences/README.md
rename to packages/shared_preferences/shared_preferences/README.md
diff --git a/packages/shared_preferences/android/build.gradle b/packages/shared_preferences/shared_preferences/android/build.gradle
similarity index 100%
rename from packages/shared_preferences/android/build.gradle
rename to packages/shared_preferences/shared_preferences/android/build.gradle
diff --git a/packages/shared_preferences/android/gradle.properties b/packages/shared_preferences/shared_preferences/android/gradle.properties
similarity index 100%
rename from packages/shared_preferences/android/gradle.properties
rename to packages/shared_preferences/shared_preferences/android/gradle.properties
diff --git a/packages/shared_preferences/android/gradle/wrapper/gradle-wrapper.properties b/packages/shared_preferences/shared_preferences/android/gradle/wrapper/gradle-wrapper.properties
similarity index 100%
rename from packages/shared_preferences/android/gradle/wrapper/gradle-wrapper.properties
rename to packages/shared_preferences/shared_preferences/android/gradle/wrapper/gradle-wrapper.properties
diff --git a/packages/shared_preferences/android/settings.gradle b/packages/shared_preferences/shared_preferences/android/settings.gradle
similarity index 100%
rename from packages/shared_preferences/android/settings.gradle
rename to packages/shared_preferences/shared_preferences/android/settings.gradle
diff --git a/packages/shared_preferences/android/src/main/AndroidManifest.xml b/packages/shared_preferences/shared_preferences/android/src/main/AndroidManifest.xml
similarity index 100%
rename from packages/shared_preferences/android/src/main/AndroidManifest.xml
rename to packages/shared_preferences/shared_preferences/android/src/main/AndroidManifest.xml
diff --git a/packages/shared_preferences/android/src/main/java/io/flutter/plugins/sharedpreferences/MethodCallHandlerImpl.java b/packages/shared_preferences/shared_preferences/android/src/main/java/io/flutter/plugins/sharedpreferences/MethodCallHandlerImpl.java
similarity index 100%
rename from packages/shared_preferences/android/src/main/java/io/flutter/plugins/sharedpreferences/MethodCallHandlerImpl.java
rename to packages/shared_preferences/shared_preferences/android/src/main/java/io/flutter/plugins/sharedpreferences/MethodCallHandlerImpl.java
diff --git a/packages/shared_preferences/android/src/main/java/io/flutter/plugins/sharedpreferences/SharedPreferencesPlugin.java b/packages/shared_preferences/shared_preferences/android/src/main/java/io/flutter/plugins/sharedpreferences/SharedPreferencesPlugin.java
similarity index 100%
rename from packages/shared_preferences/android/src/main/java/io/flutter/plugins/sharedpreferences/SharedPreferencesPlugin.java
rename to packages/shared_preferences/shared_preferences/android/src/main/java/io/flutter/plugins/sharedpreferences/SharedPreferencesPlugin.java
diff --git a/packages/shared_preferences/example/README.md b/packages/shared_preferences/shared_preferences/example/README.md
similarity index 100%
rename from packages/shared_preferences/example/README.md
rename to packages/shared_preferences/shared_preferences/example/README.md
diff --git a/packages/shared_preferences/example/android/app/build.gradle b/packages/shared_preferences/shared_preferences/example/android/app/build.gradle
similarity index 100%
rename from packages/shared_preferences/example/android/app/build.gradle
rename to packages/shared_preferences/shared_preferences/example/android/app/build.gradle
diff --git a/packages/shared_preferences/example/android/app/gradle/wrapper/gradle-wrapper.properties b/packages/shared_preferences/shared_preferences/example/android/app/gradle/wrapper/gradle-wrapper.properties
similarity index 100%
rename from packages/shared_preferences/example/android/app/gradle/wrapper/gradle-wrapper.properties
rename to packages/shared_preferences/shared_preferences/example/android/app/gradle/wrapper/gradle-wrapper.properties
diff --git a/packages/shared_preferences/example/android/app/src/main/AndroidManifest.xml b/packages/shared_preferences/shared_preferences/example/android/app/src/main/AndroidManifest.xml
similarity index 100%
rename from packages/shared_preferences/example/android/app/src/main/AndroidManifest.xml
rename to packages/shared_preferences/shared_preferences/example/android/app/src/main/AndroidManifest.xml
diff --git a/packages/shared_preferences/example/android/app/src/main/java/io/flutter/plugins/sharedpreferencesexample/EmbeddingV1Activity.java b/packages/shared_preferences/shared_preferences/example/android/app/src/main/java/io/flutter/plugins/sharedpreferencesexample/EmbeddingV1Activity.java
similarity index 100%
rename from packages/shared_preferences/example/android/app/src/main/java/io/flutter/plugins/sharedpreferencesexample/EmbeddingV1Activity.java
rename to packages/shared_preferences/shared_preferences/example/android/app/src/main/java/io/flutter/plugins/sharedpreferencesexample/EmbeddingV1Activity.java
diff --git a/packages/shared_preferences/example/android/app/src/main/java/io/flutter/plugins/sharedpreferencesexample/EmbeddingV1ActivityTest.java b/packages/shared_preferences/shared_preferences/example/android/app/src/main/java/io/flutter/plugins/sharedpreferencesexample/EmbeddingV1ActivityTest.java
similarity index 100%
rename from packages/shared_preferences/example/android/app/src/main/java/io/flutter/plugins/sharedpreferencesexample/EmbeddingV1ActivityTest.java
rename to packages/shared_preferences/shared_preferences/example/android/app/src/main/java/io/flutter/plugins/sharedpreferencesexample/EmbeddingV1ActivityTest.java
diff --git a/packages/shared_preferences/example/android/app/src/main/java/io/flutter/plugins/sharedpreferencesexample/MainActivity.java b/packages/shared_preferences/shared_preferences/example/android/app/src/main/java/io/flutter/plugins/sharedpreferencesexample/MainActivity.java
similarity index 100%
rename from packages/shared_preferences/example/android/app/src/main/java/io/flutter/plugins/sharedpreferencesexample/MainActivity.java
rename to packages/shared_preferences/shared_preferences/example/android/app/src/main/java/io/flutter/plugins/sharedpreferencesexample/MainActivity.java
diff --git a/packages/shared_preferences/example/android/app/src/main/java/io/flutter/plugins/sharedpreferencesexample/MainActivityTest.java b/packages/shared_preferences/shared_preferences/example/android/app/src/main/java/io/flutter/plugins/sharedpreferencesexample/MainActivityTest.java
similarity index 100%
rename from packages/shared_preferences/example/android/app/src/main/java/io/flutter/plugins/sharedpreferencesexample/MainActivityTest.java
rename to packages/shared_preferences/shared_preferences/example/android/app/src/main/java/io/flutter/plugins/sharedpreferencesexample/MainActivityTest.java
diff --git a/packages/shared_preferences/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/packages/shared_preferences/shared_preferences/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
similarity index 100%
rename from packages/shared_preferences/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
rename to packages/shared_preferences/shared_preferences/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
diff --git a/packages/shared_preferences/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/packages/shared_preferences/shared_preferences/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
similarity index 100%
rename from packages/shared_preferences/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
rename to packages/shared_preferences/shared_preferences/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
diff --git a/packages/shared_preferences/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/packages/shared_preferences/shared_preferences/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
similarity index 100%
rename from packages/shared_preferences/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
rename to packages/shared_preferences/shared_preferences/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
diff --git a/packages/shared_preferences/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/packages/shared_preferences/shared_preferences/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
similarity index 100%
rename from packages/shared_preferences/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
rename to packages/shared_preferences/shared_preferences/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
diff --git a/packages/shared_preferences/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/packages/shared_preferences/shared_preferences/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
similarity index 100%
rename from packages/shared_preferences/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
rename to packages/shared_preferences/shared_preferences/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
diff --git a/packages/shared_preferences/example/android/build.gradle b/packages/shared_preferences/shared_preferences/example/android/build.gradle
similarity index 100%
rename from packages/shared_preferences/example/android/build.gradle
rename to packages/shared_preferences/shared_preferences/example/android/build.gradle
diff --git a/packages/shared_preferences/example/android/gradle.properties b/packages/shared_preferences/shared_preferences/example/android/gradle.properties
similarity index 100%
rename from packages/shared_preferences/example/android/gradle.properties
rename to packages/shared_preferences/shared_preferences/example/android/gradle.properties
diff --git a/packages/shared_preferences/example/android/gradle/wrapper/gradle-wrapper.properties b/packages/shared_preferences/shared_preferences/example/android/gradle/wrapper/gradle-wrapper.properties
similarity index 100%
rename from packages/shared_preferences/example/android/gradle/wrapper/gradle-wrapper.properties
rename to packages/shared_preferences/shared_preferences/example/android/gradle/wrapper/gradle-wrapper.properties
diff --git a/packages/shared_preferences/example/android/settings.gradle b/packages/shared_preferences/shared_preferences/example/android/settings.gradle
similarity index 100%
rename from packages/shared_preferences/example/android/settings.gradle
rename to packages/shared_preferences/shared_preferences/example/android/settings.gradle
diff --git a/packages/shared_preferences/example/ios/Flutter/AppFrameworkInfo.plist b/packages/shared_preferences/shared_preferences/example/ios/Flutter/AppFrameworkInfo.plist
similarity index 100%
rename from packages/shared_preferences/example/ios/Flutter/AppFrameworkInfo.plist
rename to packages/shared_preferences/shared_preferences/example/ios/Flutter/AppFrameworkInfo.plist
diff --git a/packages/shared_preferences/example/ios/Flutter/Debug.xcconfig b/packages/shared_preferences/shared_preferences/example/ios/Flutter/Debug.xcconfig
similarity index 100%
rename from packages/shared_preferences/example/ios/Flutter/Debug.xcconfig
rename to packages/shared_preferences/shared_preferences/example/ios/Flutter/Debug.xcconfig
diff --git a/packages/shared_preferences/example/ios/Flutter/Release.xcconfig b/packages/shared_preferences/shared_preferences/example/ios/Flutter/Release.xcconfig
similarity index 100%
rename from packages/shared_preferences/example/ios/Flutter/Release.xcconfig
rename to packages/shared_preferences/shared_preferences/example/ios/Flutter/Release.xcconfig
diff --git a/packages/shared_preferences/example/ios/Runner.xcodeproj/project.pbxproj b/packages/shared_preferences/shared_preferences/example/ios/Runner.xcodeproj/project.pbxproj
similarity index 100%
rename from packages/shared_preferences/example/ios/Runner.xcodeproj/project.pbxproj
rename to packages/shared_preferences/shared_preferences/example/ios/Runner.xcodeproj/project.pbxproj
diff --git a/packages/shared_preferences/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/shared_preferences/shared_preferences/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
similarity index 100%
rename from packages/shared_preferences/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
rename to packages/shared_preferences/shared_preferences/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
diff --git a/packages/shared_preferences/example/ios/Runner/AppDelegate.h b/packages/shared_preferences/shared_preferences/example/ios/Runner/AppDelegate.h
similarity index 100%
rename from packages/shared_preferences/example/ios/Runner/AppDelegate.h
rename to packages/shared_preferences/shared_preferences/example/ios/Runner/AppDelegate.h
diff --git a/packages/shared_preferences/example/ios/Runner/AppDelegate.m b/packages/shared_preferences/shared_preferences/example/ios/Runner/AppDelegate.m
similarity index 100%
rename from packages/shared_preferences/example/ios/Runner/AppDelegate.m
rename to packages/shared_preferences/shared_preferences/example/ios/Runner/AppDelegate.m
diff --git a/packages/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/packages/shared_preferences/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
similarity index 100%
rename from packages/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
rename to packages/shared_preferences/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
diff --git a/packages/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/packages/shared_preferences/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
similarity index 100%
rename from packages/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
rename to packages/shared_preferences/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
diff --git a/packages/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/packages/shared_preferences/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
similarity index 100%
rename from packages/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
rename to packages/shared_preferences/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
diff --git a/packages/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/packages/shared_preferences/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
similarity index 100%
rename from packages/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
rename to packages/shared_preferences/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
diff --git a/packages/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/packages/shared_preferences/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
similarity index 100%
rename from packages/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
rename to packages/shared_preferences/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
diff --git a/packages/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/packages/shared_preferences/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
similarity index 100%
rename from packages/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
rename to packages/shared_preferences/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
diff --git a/packages/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/packages/shared_preferences/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
similarity index 100%
rename from packages/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
rename to packages/shared_preferences/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
diff --git a/packages/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/packages/shared_preferences/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
similarity index 100%
rename from packages/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
rename to packages/shared_preferences/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
diff --git a/packages/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/packages/shared_preferences/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
similarity index 100%
rename from packages/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
rename to packages/shared_preferences/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
diff --git a/packages/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/packages/shared_preferences/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
similarity index 100%
rename from packages/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
rename to packages/shared_preferences/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
diff --git a/packages/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/packages/shared_preferences/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
similarity index 100%
rename from packages/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
rename to packages/shared_preferences/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
diff --git a/packages/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/packages/shared_preferences/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
similarity index 100%
rename from packages/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
rename to packages/shared_preferences/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
diff --git a/packages/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/packages/shared_preferences/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
similarity index 100%
rename from packages/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
rename to packages/shared_preferences/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
diff --git a/packages/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/packages/shared_preferences/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
similarity index 100%
rename from packages/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
rename to packages/shared_preferences/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
diff --git a/packages/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/packages/shared_preferences/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
similarity index 100%
rename from packages/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
rename to packages/shared_preferences/shared_preferences/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
diff --git a/packages/shared_preferences/example/ios/Runner/Base.lproj/LaunchScreen.storyboard b/packages/shared_preferences/shared_preferences/example/ios/Runner/Base.lproj/LaunchScreen.storyboard
similarity index 100%
rename from packages/shared_preferences/example/ios/Runner/Base.lproj/LaunchScreen.storyboard
rename to packages/shared_preferences/shared_preferences/example/ios/Runner/Base.lproj/LaunchScreen.storyboard
diff --git a/packages/shared_preferences/example/ios/Runner/Base.lproj/Main.storyboard b/packages/shared_preferences/shared_preferences/example/ios/Runner/Base.lproj/Main.storyboard
similarity index 100%
rename from packages/shared_preferences/example/ios/Runner/Base.lproj/Main.storyboard
rename to packages/shared_preferences/shared_preferences/example/ios/Runner/Base.lproj/Main.storyboard
diff --git a/packages/shared_preferences/example/ios/Runner/Info.plist b/packages/shared_preferences/shared_preferences/example/ios/Runner/Info.plist
similarity index 100%
rename from packages/shared_preferences/example/ios/Runner/Info.plist
rename to packages/shared_preferences/shared_preferences/example/ios/Runner/Info.plist
diff --git a/packages/shared_preferences/example/ios/Runner/main.m b/packages/shared_preferences/shared_preferences/example/ios/Runner/main.m
similarity index 100%
rename from packages/shared_preferences/example/ios/Runner/main.m
rename to packages/shared_preferences/shared_preferences/example/ios/Runner/main.m
diff --git a/packages/shared_preferences/example/lib/main.dart b/packages/shared_preferences/shared_preferences/example/lib/main.dart
similarity index 100%
rename from packages/shared_preferences/example/lib/main.dart
rename to packages/shared_preferences/shared_preferences/example/lib/main.dart
diff --git a/packages/shared_preferences/example/pubspec.yaml b/packages/shared_preferences/shared_preferences/example/pubspec.yaml
similarity index 100%
rename from packages/shared_preferences/example/pubspec.yaml
rename to packages/shared_preferences/shared_preferences/example/pubspec.yaml
diff --git a/packages/shared_preferences/example/test_driver/shared_preferences_e2e.dart b/packages/shared_preferences/shared_preferences/example/test_driver/shared_preferences_e2e.dart
similarity index 100%
rename from packages/shared_preferences/example/test_driver/shared_preferences_e2e.dart
rename to packages/shared_preferences/shared_preferences/example/test_driver/shared_preferences_e2e.dart
diff --git a/packages/shared_preferences/example/test_driver/shared_preferences_e2e_test.dart b/packages/shared_preferences/shared_preferences/example/test_driver/shared_preferences_e2e_test.dart
similarity index 100%
rename from packages/shared_preferences/example/test_driver/shared_preferences_e2e_test.dart
rename to packages/shared_preferences/shared_preferences/example/test_driver/shared_preferences_e2e_test.dart
diff --git a/packages/shared_preferences/ios/Assets/.gitkeep b/packages/shared_preferences/shared_preferences/ios/Assets/.gitkeep
similarity index 100%
rename from packages/shared_preferences/ios/Assets/.gitkeep
rename to packages/shared_preferences/shared_preferences/ios/Assets/.gitkeep
diff --git a/packages/shared_preferences/ios/Classes/SharedPreferencesPlugin.h b/packages/shared_preferences/shared_preferences/ios/Classes/SharedPreferencesPlugin.h
similarity index 100%
rename from packages/shared_preferences/ios/Classes/SharedPreferencesPlugin.h
rename to packages/shared_preferences/shared_preferences/ios/Classes/SharedPreferencesPlugin.h
diff --git a/packages/shared_preferences/ios/Classes/SharedPreferencesPlugin.m b/packages/shared_preferences/shared_preferences/ios/Classes/SharedPreferencesPlugin.m
similarity index 100%
rename from packages/shared_preferences/ios/Classes/SharedPreferencesPlugin.m
rename to packages/shared_preferences/shared_preferences/ios/Classes/SharedPreferencesPlugin.m
diff --git a/packages/shared_preferences/ios/shared_preferences.podspec b/packages/shared_preferences/shared_preferences/ios/shared_preferences.podspec
similarity index 100%
rename from packages/shared_preferences/ios/shared_preferences.podspec
rename to packages/shared_preferences/shared_preferences/ios/shared_preferences.podspec
diff --git a/packages/shared_preferences/lib/shared_preferences.dart b/packages/shared_preferences/shared_preferences/lib/shared_preferences.dart
similarity index 100%
rename from packages/shared_preferences/lib/shared_preferences.dart
rename to packages/shared_preferences/shared_preferences/lib/shared_preferences.dart
diff --git a/packages/shared_preferences/pubspec.yaml b/packages/shared_preferences/shared_preferences/pubspec.yaml
similarity index 92%
rename from packages/shared_preferences/pubspec.yaml
rename to packages/shared_preferences/shared_preferences/pubspec.yaml
index 89326d9a3aa9..62853949d055 100644
--- a/packages/shared_preferences/pubspec.yaml
+++ b/packages/shared_preferences/shared_preferences/pubspec.yaml
@@ -2,8 +2,8 @@ name: shared_preferences
description: Flutter plugin for reading and writing simple key-value pairs.
Wraps NSUserDefaults on iOS and SharedPreferences on Android.
author: Flutter Team
-homepage: https://github.com/flutter/plugins/tree/master/packages/shared_preferences
-version: 0.5.4+6
+homepage: https://github.com/flutter/plugins/tree/master/packages/shared_preferences/shared_preferences
+version: 0.5.4+7
flutter:
plugin:
diff --git a/packages/shared_preferences/test/shared_preferences_test.dart b/packages/shared_preferences/shared_preferences/test/shared_preferences_test.dart
similarity index 100%
rename from packages/shared_preferences/test/shared_preferences_test.dart
rename to packages/shared_preferences/shared_preferences/test/shared_preferences_test.dart
diff --git a/packages/shared_preferences/shared_preferences_platform_interface/CHANGELOG.md b/packages/shared_preferences/shared_preferences_platform_interface/CHANGELOG.md
new file mode 100644
index 000000000000..5797967fe365
--- /dev/null
+++ b/packages/shared_preferences/shared_preferences_platform_interface/CHANGELOG.md
@@ -0,0 +1,4 @@
+## 1.0.0
+
+* Initial release. Contains the interface and an implementation based on
+ method channels.
diff --git a/packages/shared_preferences/shared_preferences_platform_interface/LICENSE b/packages/shared_preferences/shared_preferences_platform_interface/LICENSE
new file mode 100644
index 000000000000..000b4618d2bd
--- /dev/null
+++ b/packages/shared_preferences/shared_preferences_platform_interface/LICENSE
@@ -0,0 +1,27 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file
diff --git a/packages/shared_preferences/shared_preferences_platform_interface/README.md b/packages/shared_preferences/shared_preferences_platform_interface/README.md
new file mode 100644
index 000000000000..301ba68ea361
--- /dev/null
+++ b/packages/shared_preferences/shared_preferences_platform_interface/README.md
@@ -0,0 +1,25 @@
+# shared_preferences_platform_interface
+
+A common platform interface for the [`shared_preferences`][1] plugin.
+
+This interface allows platform-specific implementations of the `shared_preferences`
+plugin, as well as the plugin itself, to ensure they are supporting the
+same interface.
+
+# Usage
+
+To implement a new platform-specific implementation of `shared_preferences`, extend
+[`SharedPreferencesPlatform`][2] with an implementation that performs the
+platform-specific behavior, and when you register your plugin, set the default
+`SharedPreferencesLoader` by calling the `SharedPreferencesPlatform.loader` setter.
+
+# Note on breaking changes
+
+Strongly prefer non-breaking changes (such as adding a method to the interface)
+over breaking changes for this package.
+
+See https://flutter.dev/go/platform-interface-breaking-changes for a discussion
+on why a less-clean interface is preferable to a breaking change.
+
+[1]: ../shared_preferences
+[2]: lib/shared_preferences_platform_interface.dart
diff --git a/packages/shared_preferences/shared_preferences_platform_interface/lib/method_channel_shared_preferences.dart b/packages/shared_preferences/shared_preferences_platform_interface/lib/method_channel_shared_preferences.dart
new file mode 100644
index 000000000000..66009a5caf14
--- /dev/null
+++ b/packages/shared_preferences/shared_preferences_platform_interface/lib/method_channel_shared_preferences.dart
@@ -0,0 +1,56 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+import 'dart:async';
+
+import 'package:flutter/services.dart';
+
+import 'shared_preferences_platform_interface.dart';
+
+const MethodChannel _kChannel =
+ MethodChannel('plugins.flutter.io/shared_preferences');
+
+/// Wraps NSUserDefaults (on iOS) and SharedPreferences (on Android), providing
+/// a persistent store for simple data.
+///
+/// Data is persisted to disk asynchronously.
+class MethodChannelSharedPreferencesStore
+ extends SharedPreferencesStorePlatform {
+ @override
+ Future remove(String key) {
+ return _invokeBoolMethod('remove', {
+ 'key': key,
+ });
+ }
+
+ @override
+ Future setValue(String valueType, String key, Object value) {
+ return _invokeBoolMethod('set$valueType', {
+ 'key': key,
+ 'value': value,
+ });
+ }
+
+ Future _invokeBoolMethod(String method, Map params) {
+ return _kChannel
+ .invokeMethod(method, params)
+ // TODO(yjbanov): I copied this from the original
+ // shared_preferences.dart implementation, but I
+ // actually do not know why it's necessary to pipe the
+ // result through an identity function.
+ //
+ // Source: https://github.com/flutter/plugins/blob/3a87296a40a2624d200917d58f036baa9fb18df8/packages/shared_preferences/lib/shared_preferences.dart#L134
+ .then((dynamic result) => result);
+ }
+
+ @override
+ Future clear() {
+ return _kChannel.invokeMethod('clear');
+ }
+
+ @override
+ Future