Skip to content

Commit

Permalink
Added About page
Browse files Browse the repository at this point in the history
  • Loading branch information
deven98 committed Jun 2, 2019
1 parent 1c893cf commit fd37abf
Show file tree
Hide file tree
Showing 10 changed files with 247 additions and 18 deletions.
6 changes: 5 additions & 1 deletion CONTRIBUTING.md
Expand Up @@ -6,9 +6,13 @@
2) Add app on-boarding
3) Improve UI
4) Add get-layout-code functionality ✔️
5) Add Save code functionality
5) Add save code functionality
6) Add tests

## Longer term TODOs

1) Optimise for Flutter Web

### To add a new widget

All widgets extend [ModelWidget](https://github.com/deven98/MetaFlutter/blob/master/lib/widget_builder_utilities/model_widget.dart).
Expand Down
Binary file added images/screenshot.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions ios/Flutter/Debug.xcconfig
@@ -1 +1,2 @@
#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
#include "Generated.xcconfig"
1 change: 1 addition & 0 deletions ios/Flutter/Release.xcconfig
@@ -1 +1,2 @@
#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
#include "Generated.xcconfig"
76 changes: 75 additions & 1 deletion ios/Runner.xcodeproj/project.pbxproj
Expand Up @@ -7,6 +7,7 @@
objects = {

/* Begin PBXBuildFile section */
11F77C15F2DCE9DBFED94600 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3BFC5A2AECAA8F93DCD01B5D /* Pods_Runner.framework */; };
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
3B80C3941E831B6300D905FE /* App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; };
Expand Down Expand Up @@ -40,8 +41,11 @@
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
3B80C3931E831B6300D905FE /* App.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = App.framework; path = Flutter/App.framework; sourceTree = "<group>"; };
3BFC5A2AECAA8F93DCD01B5D /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
5198C52484DC836F6DF4CB49 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; };
74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
74C0C7E8B8B53C0C40BAE53F /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
Expand All @@ -51,6 +55,7 @@
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
FC41D31C44106F13BC248581 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
Expand All @@ -60,12 +65,32 @@
files = (
9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */,
3B80C3941E831B6300D905FE /* App.framework in Frameworks */,
11F77C15F2DCE9DBFED94600 /* Pods_Runner.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
42D150899A6BF43AFA3AC8E2 /* Pods */ = {
isa = PBXGroup;
children = (
FC41D31C44106F13BC248581 /* Pods-Runner.debug.xcconfig */,
74C0C7E8B8B53C0C40BAE53F /* Pods-Runner.release.xcconfig */,
5198C52484DC836F6DF4CB49 /* Pods-Runner.profile.xcconfig */,
);
name = Pods;
path = Pods;
sourceTree = "<group>";
};
6FBDB4491766735D4942D335 /* Frameworks */ = {
isa = PBXGroup;
children = (
3BFC5A2AECAA8F93DCD01B5D /* Pods_Runner.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
9740EEB11CF90186004384FC /* Flutter */ = {
isa = PBXGroup;
children = (
Expand All @@ -85,6 +110,8 @@
9740EEB11CF90186004384FC /* Flutter */,
97C146F01CF9000F007C117D /* Runner */,
97C146EF1CF9000F007C117D /* Products */,
42D150899A6BF43AFA3AC8E2 /* Pods */,
6FBDB4491766735D4942D335 /* Frameworks */,
);
sourceTree = "<group>";
};
Expand Down Expand Up @@ -126,12 +153,14 @@
isa = PBXNativeTarget;
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
buildPhases = (
5426CF42CBDC5360612AC6A8 /* [CP] Check Pods Manifest.lock */,
9740EEB61CF901F6004384FC /* Run Script */,
97C146EA1CF9000F007C117D /* Sources */,
97C146EB1CF9000F007C117D /* Frameworks */,
97C146EC1CF9000F007C117D /* Resources */,
9705A1C41CF9048500538489 /* Embed Frameworks */,
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
7CCD8F735B013D82452D2F23 /* [CP] Embed Pods Frameworks */,
);
buildRules = (
);
Expand Down Expand Up @@ -205,6 +234,52 @@
shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" thin";
};
5426CF42CBDC5360612AC6A8 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
7CCD8F735B013D82452D2F23 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh",
"${PODS_ROOT}/../.symlinks/flutter/ios/Flutter.framework",
"${BUILT_PRODUCTS_DIR}/url_launcher/url_launcher.framework",
);
name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
);
outputPaths = (
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Flutter.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/url_launcher.framework",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
9740EEB61CF901F6004384FC /* Run Script */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
Expand Down Expand Up @@ -508,7 +583,6 @@
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */

};
rootObject = 97C146E61CF9000F007C117D /* Project object */;
}
3 changes: 3 additions & 0 deletions ios/Runner.xcworkspace/contents.xcworkspacedata

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

104 changes: 104 additions & 0 deletions lib/pages/about_screen.dart
@@ -0,0 +1,104 @@
import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher.dart';

class AboutScreen extends StatefulWidget {
@override
_AboutScreenState createState() => _AboutScreenState();
}

class _AboutScreenState extends State<AboutScreen> {
List<String> contributors = [
"Deven Joshi (Creator and maintainer)",
"Tushar Parmar",
"sherlockbeard"
];

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("About"),
),
body: ListView(
children: <Widget>[
Image.asset('images/screenshot.png'),
Center(
child: Text(
"MetaFlutter",
style: TextStyle(fontSize: 22.0, fontWeight: FontWeight.w300),
),
),
SizedBox(
height: 8.0,
),
Center(
child: Padding(
padding: const EdgeInsets.all(12.0),
child: FittedBox(
child: Text(
"Experiment with Flutter widgets on your phone!",
style: TextStyle(fontWeight: FontWeight.bold, fontSize: 24.0),
),
),
),
),
Padding(
padding: const EdgeInsets.all(12.0),
child: Center(
child: Text(
'''MetaFlutter allows you to create Flutter layouts using a wide and constantly growing range of Flutter widgets.
\nBuild out an idea you had instantly, try out something you've never tried before or just use it as a tool for Flutter layout demonstrations.
\nNo login. Free to use. Open-source.'''),
),
),
Padding(
padding: const EdgeInsets.all(12.0),
child: Text(
"Authors",
style: TextStyle(fontWeight: FontWeight.bold, fontSize: 16.0),
),
),
for (var contributor in contributors)
Padding(
padding: EdgeInsets.symmetric(horizontal: 12.0, vertical: 4.0),
child: Text(contributor),
),
Padding(
padding: const EdgeInsets.all(12.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(
"Want to contribute?",
style: TextStyle(fontWeight: FontWeight.bold, fontSize: 16.0),
),
Padding(
padding: const EdgeInsets.symmetric(vertical: 8.0),
child: InkWell(
child: Text(
"Click here",
style: TextStyle(color: Colors.blue),
),
onTap: () {
_launchURL();
},
),
),
],
),
),
],
),
);
}

_launchURL() async {
const url = 'https://github.com/deven98/MetaFlutter';
if (await canLaunch(url)) {
await launch(url);
} else {
throw 'Could not launch $url';
}
}

}
63 changes: 48 additions & 15 deletions lib/pages/home_screen.dart
@@ -1,6 +1,8 @@
import 'package:flutter/material.dart';
import 'package:flutter_app_builder/pages/widget_structure_screen.dart';

import 'about_screen.dart';

/// First page to see after splash screen.
/// Keep this page as entry for main program, saved templates, etc.
class HomeScreen extends StatefulWidget {
Expand All @@ -26,7 +28,7 @@ class _HomeScreenState extends State<HomeScreen> with TickerProviderStateMixin {
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
_buildTitle(),
_buildButton(),
_buildButtons(),
],
),
),
Expand All @@ -49,21 +51,52 @@ class _HomeScreenState extends State<HomeScreen> with TickerProviderStateMixin {
);
}

Widget _buildButton() {
return FlatButton(
color: Colors.blue,
onPressed: () {
Navigator.pushReplacement(context, MaterialPageRoute(builder: (context) => WidgetStructureScreen()));
},
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
"Start",
style: TextStyle(
color: Colors.white,
fontSize: 18.0
Widget _buildButtons() {
return Container(
child: Column(
children: <Widget>[
SizedBox(
width: 120.0,
child: FlatButton(
color: Colors.blue,
onPressed: () {
Navigator.pushReplacement(
context,
MaterialPageRoute(
builder: (context) => WidgetStructureScreen()));
},
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
"Start",
style: TextStyle(color: Colors.white, fontSize: 18.0),
),
),
),
),
),
SizedBox(
height: 8.0,
),
SizedBox(
width: 120.0,
child: FlatButton(
color: Colors.blue,
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => AboutScreen()));
},
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
"About",
style: TextStyle(color: Colors.white, fontSize: 18.0),
),
),
),
),
],
),
);
}
Expand Down
9 changes: 8 additions & 1 deletion pubspec.lock
Expand Up @@ -142,6 +142,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.5"
url_launcher:
dependency: "direct main"
description:
name: url_launcher
url: "https://pub.dartlang.org"
source: hosted
version: "5.0.2"
vector_math:
dependency: transitive
description:
Expand All @@ -151,4 +158,4 @@ packages:
version: "2.0.8"
sdks:
dart: ">=2.2.2 <3.0.0"
flutter: ">=0.1.4 <2.0.0"
flutter: ">=0.5.6 <2.0.0"

0 comments on commit fd37abf

Please sign in to comment.