`
前进的路中没有月亮
  • 浏览: 20700 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

仅用了一天开发了这样的app,再也不用担心排队的问题了

阅读更多
昨天约朋友们去我最喜欢的一家餐厅吃饭,到了地点发现人都排到门口了,可是又不想换其他餐厅,就等了一个小时后才大快朵颐。 
吃完后和朋友聊到怎么才能在就餐高峰期间还能抢到一席之地,有的说飞奔着过去,有的说找人少的餐厅,有的说如果能在线预约就好了,听到这里灵机一动,对呀,如果有这样一款app可以提前预约座位顺便菜也一起点好,只要人一到马上菜上齐,不用排队也不为焦急等菜而一直喝水。这位朋友的想法我点个赞! 
但是预约也是有条件的,开始就餐时间(比如下午5点)的前半个小时之内是不允许预约的,餐厅详情内有选座功能,可以选到自己心仪的座位,和买电影票选座有异曲同工之处。预约成功后预约的就餐时间内未准时到达的情况下餐厅将保留15分钟,超过15分钟会自动扣除预约费且不保留座位。如有特殊情况取消预约则扣除预约费的10%(视餐厅而定)。
大概想到了这些,心动不如行动我和朋友们马上试着开发这样一款app(成熟度不是很高,时间仓促有的功能还没来得及实现)。 
用户客户端包括登录、主页面、餐厅详情、预约、我的6个页面 






客户端是用爱码哥平台开发的,基于imag.js技术。 
看看实现“我的”页面的代码 
<?xml version="1.0" encoding="utf-8"?>
<imag>
    <script>
        <![CDATA[
        $page.onload = function(){
            $http.get("http://www.imagapp.com/project/imag/imag-mh0504/data/mine.json",function(data){
                var data = JSON.parse(data).data;
                var info = data.info;
                $('order').text = info.order;
                $('points').text = info.points;
                $('collection').text = info.collection;
                $('coupom').text = info.coupom;
            	var listJson = {items:[]};
                //当前订单
                var present = data.present;
               	var item0Json = {
                   	template:0,
                   	widgets:{
                        present_icon:{src:present.icon},
                        present_name:{text:present.name},
                        present_number:{text:present.number+'人'},
                        present_park:{text:present.park},
                        present_time:{text:present.time},
                        present_smoke:{text:present.smoke}
                   	}
               	}
                listJson.items.push(item0Json);
                //过往订单
                var past = data.past;
                for(i = 0;i<past.length;i++){
                    if(past[i].remark!=""&&past[i].remark!=null){
						var item1Json = {
							template:1,
							widgets:{
								past_icon:{src:past[i].icon},
								past_name:{text:past[i].name},
								past_number:{text:past[i].number+'人'},
								past_park:{text:past[i].park},
								past_time:{text:past[i].time}
							}
						}
						listJson.items.push(item1Json);
                        var item2Json = {
                            template:2,
                            widgets:{
                                past_remark:{text:past[i].remark}
                            }
                        }
                    	listJson.items.push(item2Json);
                    }else{
						var item3Json = {
							template:3,
							widgets:{
								past_icon:{src:past[i].icon},
								past_name:{text:past[i].name},
								past_number:{text:past[i].number+'人'},
								past_park:{text:past[i].park},
								past_time:{text:past[i].time}
							}
						}
						listJson.items.push(item3Json);
					}
                }
                $('list').update(listJson);
            })
        }
        ]]>
    </script>
    <page screen="full" style="background:background.jpg">
        <content dragable="false">
            <list type="transparent">
                <item style="padding:0"><col><row>
                	<button style="margin:20 10;align:left;background:title_back.png" onclick="$page.close(0)"></button>
                </row></col></item>
                <item style="margin:0 30;padding:0">
                    <col>
                        <row><label style="color:#ffffff;font-size:21">Queue</label></row>
                        <row><label style="color:#ffffff;font-size:16;margin-top:25">我不是在吃,就是在去吃的路上。</label></row>
                    </col>
                </item>
                <item style="padding:0;margin:64 7 0">
                    <col>
                        <row><label style="align:center;color:#ffffff;font-size:11">订单</label></row>
                        <row><label id="order" style="align:center;color:#ffffff;font-size:10;margin-top:2"/></row>
                    </col>
                    <col>
                        <row><label style="align:center;color:#ffffff;font-size:11">积分</label></row>
                        <row><label id="points" style="align:center;color:#ffffff;font-size:10;margin-top:2"/></row>
                    </col>
                    <col>
                        <row><label style="align:center;color:#ffffff;font-size:11">收藏</label></row>
                        <row><label id="collection" style="align:center;color:#ffffff;font-size:10;margin-top:2"/></row>
                    </col>
                    <col>
                        <row><label style="align:center;color:#ffffff;font-size:11">优惠</label></row>
                        <row><label id="coupom" style="align:center;color:#ffffff;font-size:10;margin-top:2"/></row>
                    </col>
                </item>
            </list>
            <list type="transparent" reuse="true" id="list" style="margin:0 11 21">
                <item style="padding:0 21 21;margin:20 0 0;background:#ee791b;col-width:71,*;corner-radius:4">
                    <col><row><icon reusekey="present_icon" style="height:61;width:61;align:left"/></row></col>
                    <col>
                        <row><label reusekey="present_name" style="color:#ffffff;font-size:14;font-weight:bold"/></row>
                        <row style="margin:5 0">
                            <label style="color:#ffffff;font-size:10">预约人数:</label>
                            <label reusekey="present_number" style="color:#ffffff;font-size:10"/>
                            <label reusekey="present_park" style="color:#ffffff;font-size:10"/>
                            <label style="color:#ffffff;font-size:10;align:right" onclick="$page.open('carte.xml')">在线点餐</label>
                        </row>
                        <row>
                            <label style="color:#ffffff;font-size:10">预约时间:</label>
                            <label reusekey="present_time" style="color:#ffffff;font-size:10"/>
                            <label reusekey="present_smoke" style="color:#ffffff;font-size:10;align:right"/>
                        </row>
                    </col>
                </item>
                <item style="padding:0 21 11;margin:21 0 0;background:#ffffff;col-width:71,*;corner-radius:4 0">
                    <col><row><icon reusekey="past_icon" style="height:61;width:61;align:left"/></row></col>
                    <col>
                        <row><label reusekey="past_name" style="color:#707070;font-size:14;font-weight:bold"/></row>
                        <row style="margin:5 0">
                            <label style="color:#707070;font-size:10">预约人数:</label>
                            <label reusekey="past_number" style="color:#707070;font-size:10"/>
                            <label reusekey="past_park" style="color:#707070;font-size:10"/>
                        </row>
                        <row>
                            <label style="color:#707070;font-size:10">预约时间:</label>
                            <label reusekey="past_time" style="color:#707070;font-size:10"/>
                            <label style="color:#707070;font-size:10;align:right">评价</label>
                        </row>
                    </col>
                </item>
                <item style="padding:0 21;background:#ffffff;corner-radius:0 4">
                    <row style="background:#eeeeed;height:1"></row>
                    <row><label reusekey="past_remark" style="color:#707070;font-size:10;align:center;margin:10 0"/></row>
                </item>
                <item style="padding:0 21 11;margin:21 0 0;background:#ffffff;col-width:71,*;corner-radius:4">
                    <col><row><icon reusekey="past_icon" style="height:61;width:61;align:left"/></row></col>
                    <col>
                        <row><label reusekey="past_name" style="color:#707070;font-size:14;font-weight:bold"/></row>
                        <row style="margin:5 0">
                            <label style="color:#707070;font-size:10">预约人数:</label>
                            <label reusekey="past_number" style="color:#707070;font-size:10"/>
                            <label reusekey="past_park" style="color:#707070;font-size:10"/>
                        </row>
                        <row>
                            <label style="color:#707070;font-size:10">预约时间:</label>
                            <label reusekey="past_time" style="color:#707070;font-size:10"/>
                            <label style="color:#707070;font-size:10;align:right">评价</label>
                        </row>
                    </col>
                </item>
            </list>
        </content>
    </page>
</imag>

代码量很少对不对(小伙伴表示惊呆了!) 
我和两个朋友用了不到一天的时间就开发出了这样的app,是不是很快速! 
客户端下载安装 (这仅仅只是个demo,不具有任何商业用途及推广)   
或扫描二维码:
ps:仅Android可以使用 
1
0
分享到:
评论
2 楼 前进的路中没有月亮 2016-07-11  
masuweng 写道
那个爱码哥怎么用呢,我是初学者.还望指教...

他们官网有详细的文档,有点html和JavaScript基础都能很快学会,编辑一次代码就能同时开发Android和iOS两个系统的app(虽然现在iOS还有一些问题),但是这点我也觉得很厉害了
1 楼 masuweng 2016-07-09  
那个爱码哥怎么用呢,我是初学者.还望指教...

相关推荐

    Delphi手机APP开发入门,delphi开发安卓app,Pascal

    本文将深入探讨如何使用Delphi进行手机APP的开发,特别是针对Android平台的APP开发。 **1. Delphi的移动开发框架** Delphi的移动开发框架是基于FireMonkey(FMX)的,这是一个跨平台的UI设计和应用程序框架。FMX...

    基于App inventor的安卓版天气服务APP开发.pdf

    App Inventor是一种基于拼图式编程的安卓APP开发平台, 由Google公司推出。该平台适合初学者和非专业开发者,使用该平台可以快速开发移动应用程序。App Inventor平台会将拼图式的程序编译成相应的移动APP程序。 二...

    金蝶称重app项目_股票平台开发_股票app_金融_股票app开发_uni-app_

    "金蝶称重app项目"就是这样一个专注于金融股票领域的应用,它利用uni-app这一跨平台开发框架,为用户提供了一流的股票交易体验。本文将深入探讨该项目的技术栈、设计思路以及uni-app在金融股票app开发中的应用。 一...

    安卓大作业使用AndroidStudio开发的星座app源码.zip

    安卓大作业使用AndroidStudio开发的星座app源码,一个看星座、配对、推荐的app。 安卓大作业使用AndroidStudio开发的星座app源码,一个看星座、配对、推荐的app。安卓大作业使用AndroidStudio开发的星座app源码,一...

    Delphi XE8 iOS与Android移动应用开发(APP开发)[完整中文版]

    Delphi XE8 iOS与Android移动应用开发(APP开发)[完整中文版],这是一本不可多得的介绍使用delphi xe8开发iOS与Android移动应用的电子书,实用的技术开发教程与技术开发手册。 Delphi XE8跨平台开发让你使用一套...

    Delphi APP 开发入门教程

    ### Delphi APP 开发入门教程知识点总结 #### 一、Delphi的历史背景与技术特点 - **起源与发展:** - Delphi自1995年问世以来,凭借其独特的VCL(Visual Component Library)可视化组件库和强大的开发环境迅速在...

    AndroidAPP开发入门教程.pdf

    本教程通过实践操作,带领读者一步步完成 Android APP 的开发,帮助读者快速掌握 Android APP 开发的基本技能。 知识点一: Android 开发环境搭建 * 下载和安装 JDK 和 Android SDK * 配置 IDE 增加 SDK 支持 * ...

    鸿蒙APP开发基础知识文档

    鸿蒙APP开发基础知识文档鸿蒙APP开发基础知识文档鸿蒙APP开发基础知识文档鸿蒙APP开发基础知识文档鸿蒙APP开发基础知识文档鸿蒙APP开发基础知识文档鸿蒙APP开发基础知识文档鸿蒙APP开发基础知识文档鸿蒙APP开发基础...

    COMSOL App开发器简介.pdf

    COMSOL Multiphysics 是一款著名的多物理场仿真软件,它允许用户通过其内置的“App 开发器”快速创建仿真应用程序,即 COMSOL Apps。COMSOL Apps 是专门为非技术用户设计的,可以封装复杂的多物理场模型,使模型的...

    App开发价格表app开发成本预算表.pdf

    App开发价格表是指开发一个移动应用程序的成本预算表,该表格将APP的开发成本分解为两个主要因素:APP功能和APP开发模式。下面是对这两个因素的详细解释: 一、APP功能 APP的功能是影响APP开发成本的主要因素之一...

    混合移动APP跨平台混合开发综述.pdf

    Cordova框架是一个开源的移动应用开发框架,可以使用Web技术来开发跨平台的APP。Cordova框架提供了一个统一的API,允许开发者使用JavaScript、HTML和CSS来开发APP。Cordova框架可以在多种移动操作系统上运行,包括...

    人人都能开发安卓App App Inventor 2应用开发实战

    人人都能开发安卓App App Inventor 2应用开发实战

    vue开发 商场app+移动端

    vue+vant 框架 开发商场app, 解压即用,淘宝客app,源码,可以自调代码。vue+vant 框架 开发商场app, 解压即用,淘宝客app,源码,可以自调代码。vue+vant 框架 开发商场app, 解压即用,淘宝客app,源码,可以自...

    Android Studio实现安卓APP大作业百宝箱app源代码移动终端开发大作业.zip

    Android Studio实现安卓APP大作业百宝箱app源代码移动终端开发大作业。Android Studio实现安卓APP大作业百宝箱app源代码移动终端开发大作业。Android Studio实现安卓APP大作业百宝箱app源代码移动终端开发大作业。...

    个人用于app开发的,app爱好者也可以使用,开箱即用,各种模板

    标题中的“个人用于app开发的,app爱好者也可以使用,开箱即用,各种模板”表明这是一个专门为个人开发者和app爱好者设计的资源包,它包含了快速启动app开发所需的模板和工具,使得用户无需从零开始就能着手创建自己...

    APP开发常用的图标

    在APP开发过程中,图标设计是至关重要的一个环节。它不仅为用户提供直观的视觉引导,更是APP品牌形象和用户体验的重要组成部分。本文将围绕“APP开发常用的图标”这一主题,深入探讨图标在APP开发中的作用、种类、...

    Appweb开发指南

    Appweb开Appweb开发指南发指南Appweb开发指南Appweb开发指南Appweb开发指南

    一个使用kotlin语言开发的APP 仅共参考

    一个学习用的App 使用kotlin语言开发 适合android 小白

    用Hbuilder开发的一款手机天气预报App

    标题中的“用Hbuilder开发的一款手机天气预报App”揭示了我们正在讨论的项目是一个基于HBuilder框架构建的移动应用程序,其主要功能是提供天气预报服务。HBuilder是DCloud(数字天堂)推出的一个强大的HTML5开发工具...

Global site tag (gtag.js) - Google Analytics