php怎么设置动态库,自己如何开发一款app?
今年六月的时候,萌生了开发一个记账 App 的想法,想去用自己的 App 记账,管理收支。那时正好在英国是考试周,放假后,我回到了国内,准备去实现我的计划。没想到这暑假很快就结束了,在这个暑假中经历的太多的事,准备了要去美国读研的考试,遇到了生命中的另一半,同时,也将 Costuary for iPhone 带到了这个世界。
Logo
说道为什么要开发这样一个 App ,因为笔者在 UK 读书,市面上很少有记账 App 能够实现实时汇率的换算,带有这个功能的 App 也是操作繁杂。所以要自己开发一个,功能并没有那么复杂的,并且能够满足自己在国外和国内生活需求的 App,所以自己编写了 iPhone 的客户端,为了获取汇率和 Excel 导出,又用 Java 设计和编写了 Costuary 的后端服务器。
比起今年年初开发的 Flat Weather,这个项目的代码量大约是他的十倍,需要实现众多的功能和模块。
这篇文章将会介绍一下 Costuary 的功能与我开发过程中的一些心得。
效果图设计
说到设计,两年前,我还是一个 Android 开发者,Google 的 Material Design 是我的最爱,所以,Costuary 采用了 Android 5.0 之后采用的 Material Design 设计。其中掺杂了一些我自己的设计,因为 Material Design 的控件有时候操作繁琐。
早在 5 月份的时候已经零零总总的用 Sketch 画出了这个产品的 UI 和图标,之后开始了漫长开发的过程。
Sketch交互
与去年开发的 Android 版不同,iPhone 版的 Costuary 采用了底部导航栏的设计,相比于 Android 通常使用的 Navigation Drawer 的抽屉布局,底部导航栏的设计即使在右手操作 iPhone 的时候都不会太费力。
UX功能Features
多币种记账Costuary 支持世界上主要货币的实时汇率转换,所有外汇在统计时会转换成主货币的数目,方便查看花销。
日历视图日历视图能够很直观的反映出哪一天有消费和收入。
图表说到记账软件,量化消费的图表无疑是重要的一环,Costuary 提供了饼状图来视觉化一段时间的花销。
多账户可以建立多个账户来表示自己的银行卡,支付宝,现金等等。
月预算可以看出本月的预算还有多少。
导出到 Excel如果想要进行更加详细的分析,可以使用导出功能将账本导出到 Excel。
备份与还原允许备份账本内容到 iCloud。
开发
去把一纸设计变成真正的产品,这是一个独立开发者应该具有的能力。只会写代码不只是我唯一掌握的,能够去设计出来自己想要的应用并且将他实现才是我在做的事情。
这款应用的开发并没有想象中的简单,需要自己去实现大量 Android UI 控件,很多圆角,阴影,字体,要慢慢的去调整,让控件适合 iPhone 的屏幕。整个应用的背后有 3 个关系型数据库来储存账户,账本与各种汇率。与以前开发的 Flat Weather 不同,Costuary 会产生大量的用户数据,所以整个软件架构的稳定性变得异常重要,需要设计一些机制来防止数据丢失与损坏。
Development
为了实现 App 获取每日的汇率,并且在 iPhone 上能够实现账本导出到 Excel ,我设计了一个服务器后端来处理这些繁杂的实物。每次 App 启动后会与我的服务器来更新最新的汇率。当用户选择导出时,账本会被发送到服务器上并处理为 Excel 发送到用户的邮箱里。
说到服务器,就不得不提到用户隐私了,因为导出到 Excel 功能需要将账本传到我的服务器上做进一步处理,很多人会觉得我侵犯了他的个人隐私。对此,为了保护我的权益与用户的权益,我撰写了 Costuary 软件许可及服务协议与 Costuary 隐私政策,这是我作为独立开发者这么多年后第一次去写许可协议。
Agreement资费
与我的其他产品一样,这款 App 依旧是免费供大家使用的,作为独立开发者,我们都知道,绝大多数用户不会去珍惜一个免费的产品。就像 Flat Weather 一样,虽然获得了很多人的支持,但是也收到了很多人的吐槽。在 Costuary 中依然设计了一个的捐助按钮,如果大家使用之后喜欢这个应用,请支持我将他维护下去。
Please donate me尾巴
Costuary for iPhone 是我开发出来过最大的软件体系。我相信,能够独立开发出来产品的人懂得不只是编程。一个人要去经历项目的全部生命周期:规划,设计,开发,运营,维护,营销,这些是我开发这么多产品所学会的。
现在的 Costuary 只是第一个版本,还有很多 iPhone 的特性没有来得及开发,以后会跟上的,比如 iPhone X 的适配,3D Touch、Today Widget、Touch ID 等等。
以前在少数派撰稿的时候,很多读者会来问我如何学习开发,我也特地去写过如何去学习编程,但我相信,真正想去学习的,想去为这个生态贡献出自己的一份力的人,自己都会找到学习的方法。我的专业是电子电器而不是软件工程,但是我不后悔当年去学习编程。
最后,还是感谢在背后默默支持我的人,我会不断地改进与提升,如果 Costuary 真的在记账方面给予了你便利,这是我莫大的荣幸。
如果想要了解我的更多作品可以访问我的个人博客 MikeTech,或者在少数派中阅读我以前写过的文章。今年年初也在 iPhone 上写过一个天气 App,天气应用 Flat Weather 的设计历程
对了,关于记账有什么用,如何记账,如何养成记账的习惯。为什么每个月末都捉襟见肘,除了没钱,很可能是对财务管理的能力不强。想了解这一方面的知识,不妨看一看我派的付费阅读栏目:从零开始做好个人记账
能否推荐一些优质的手机软件?
1.几枝
清爽简约的app风格,没有任何广告!
主要功能就是随机一首诗词和一个中国色,在碎片的时间里巩固我们自身的学习一下古诗词文化,软件主界面设计真的超好看,中国色和诗词结合,打开软件就这样看着就很美好。
2.ToDesk远程办公软件是一款强大且专业的远程的控制软件,具有远程桌面控制、文件传输、语音沟通等功能,用端到端的加密来保证数据上面的安全,能够极大程度的提升用户工作生活的效率。
这个软件支持windows、mac OS、andriod、Linux、IOS系统,可以手机控制电脑、平板控制电脑、电脑控制电脑。
3.格里养成好好拉屎的习惯,降低便秘等肠道疾病的风险,记录个人的肠胃与便便健康状况。
「格里」专注健康肠胃与排便习惯的厕所记录与分析。还能再上厕所的适合解解闷,好用!
4.观止观止一款是每天一篇精选优质短篇读物。不用登录注册,没有复杂的算法,不猜你喜欢。简单,相信优美文字的力量,并乐于坚持。
5.每日英语听力每天听点英语,耳朵自然就磨出来了。
每日英语听力是一款可以学习英语、锻炼英语听力的软件,主要功能是为学习者提供了良好的英语听力训练。
6.随手写随手写是安卓平台上最流行的APP之一。它专为手机及平板而设计。
产品特色:
1, 独一无二的手写键盘混排技术。
2, 文字,涂鸦,录音,拍照,视频...记录下生活中的点滴。
3, 日历,闹钟,待办事项...贴身管理您的时间。
4, 无限画布,文本框,DIY 文档模板,钢笔效果...更多实用功能。
7.烧杯BEAKERBEAKER将你的手机变成烧杯,150多种药剂、300多种神奇的化学反应任你尝试。
拥有烧杯应用就像是拥有一个真正的移动化学仪器一样,让你可以安全地、随时随地做各种化学实验。让学习化学变得生动直观,充满乐趣。
8.印象笔记作为一个使用了5年印象笔记的印象大使,印象笔记高效的记录、快捷的整理和分享协作给我不管是在工作上还是生活上都带来了极大的便捷。这是一款收集备份、高效记录、分享、多端同步和永久保存的无纸化记录软件。印象笔记中的“笔记”可以是一段输入的文字,手写的笔记和几张图片,可以是一个网页,也可以是一段录音或者 PDF和Office文档,除此之外,它还支持手机、电脑、网页、平板多平台同步使用。
9.扫描全能王不得不说这个扫描仪真的是太强大了,想要扫描随时随地都可以扫,不用将就扫描仪,已经安利给很多朋友了。
除了一些特别重要文件必须要用扫描仪扫描,其余基本都是用这个软件,还有那个文字识别是真的好用,网上的一些资料不能下载的用这个一扫就出来了。
安装上它,轻轻松松变成随身携带的扫描仪、传真机、PDF转换器、Text文本提取工具。
10.SlideboxiPhone自带相册整理起来非常费劲,批量删除只能看缩略图,一张张删又很慢。Slidebox 正是一款相当方便高效率的手机照片图片整理与删除工具 APP,支持 iOS 和 Android,它可以通过直观的“划动/拖拽”方式,用手指滑动来快速删除/整理照片 (比较、删除、分类、指定相册、一键设置最爱、筛选)。
整套操作下来行云流水,手势操作的便利流畅,使得整理照片的工作变得非常地舒畅!
动态网站如何制作教程?
1、首先需要安装服务器,可以使用windows自带的IIS服务器,当然也可以使用比较流行的apache服务器,这需要根据自己的动态语言决定,asp就选择IIS,php就选择apache(当然并非绝对)。
2、接着就是数据库的选择,同样需要根据自己的动态语言来选择,如果使用的是ASP动态语言,那么就可以选择ACCESS数据库,如果选择的是PHP,那么就可以选择MYSQL数据库,当然还有其他的数据库选择,根据情况自己决定。
3、然后就是把动态语言和服务器数据库相结合了,不同的组合结合方式也是不同的。
4、以上的过程又叫做搭配环境,是实现动态网页必须的步骤,可以使用集成环境,windows下可以安装wamp,linux下可以安装xampp。都是一键安装,没有任何难度。
安装完成后,找到安装目录(以wamp为例子),双击之后会发现一个www目录,这就是网站的根目录,也是以后网页要存放的目录(当然可以更改),然后新建一个以php结尾的文件,打开进行编辑写入<?php echo'我的第一个动态网页';?>然后保存,在浏览器中输入localhost/刚才创建的文件名,如果出现刚才写入的字证明已经成功了.
php和go哪个潜力大?
Go 的潜力要大于php。人们通常不会把 Go 作为他们开始编程的入门语言,但是会从其他语言迁移过来,例如 PHP、Ruby,但据我所知,主要从 C++、C# 迁移过来。
Go 相比 PHP 的优势是类型安全,因为 Go 是一门静态类型语言,而 PHP 是门动态类型语言。这就意味着编译器在运行时做了大量的工作来确保你写的代码能够编译并且正常运行。相比于 C++ ,Go 的优势是简单。在 Go 里面,一切都是那么简单。
那么PHP可以实现JAVA全部的技术或者说JAVA可以实现PHP的全部技术吗?
php好还是java好?区别有哪些?
两个前景都很不错,PHP适合初学者做网站编程的快速开发,JAVA适合做软件开发。选择培训的时候一定要选择合适的培训机构,不能盲目选择,一个好的培训机构能够帮你快速的掌握开发技巧,节约大量的时间。在选择培训机构时,不建议选择达内,虽然名声很响亮,又是上市公司,但是,达内的教学质量真的太差了。无法想象竟然全部都是远程视频教学,直接影响到教学质量。
PHP独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
<?php
var_dump('hello word');
?>
这里的标题写的是谈谈PHP和JAVA的区别,其实是委婉的说法,其实别人是想听PHP好还是JAVA好!!! 从而从中找到存在感!!!
因为由于我是从多年的php开发转到java开发的。所以最,不时的有好几个同事问我,你觉得java好还是php好。我每次的回答都是,各有千秋吧,各有各的好处,这是最实际的答案。
然后临了,去想想到底都有什么差别。今天我就来仔细下,php与java到底有啥差别吧。
1. php即写即用的。
也就是说每次只有一改动完成,用户立马看到效果,而java则慢多了,代码改动完成后,要重新编译,然后重启jvm,中间耗费的时间可是不少啊,而且重启jvm过程可是会造成用户响应中断的哦。
2. php写东西快。
php可以说是非常敏捷的,一个需求给到,只要不考虑后期的性能和用户量问题,那是相当快速的,甚至你都可以不用框架,直接写也会非常快的,写一个增删改查功能,可能也就30-50行代码就搞定了。而java就慢多了,首先要想一下用什么框架,目前基本上就是spring了,然后就是配置各种数据库,过滤器,servlet,决定是用mybatis还是hibernate,然后考虑代码之间的传递,然后考虑事务。。。 然后不停调试,一改代码可能就是几分钟的等待时间,可想而知。
3. php的表面思路更清晰。
什么是表面思路,就是你看到的东西就是真正做出来的东西,比如echo "hello world",就是输出hello world,而java则不同,你可能是写response中,可能是写在modelattribute中,也可能就是return了该字符串,然后不知道怎么的,它就显示到页面上了。
4. php占用内存少。
php是进程式处理问题的,占用内存相当少,可以说,你在一台机器部署50个项目没有任何问题,只要访问量不上来,搞得定。而java就不行了,java每启动一个项目,本身就得耗尽许多内存,比如在一台8g内存的机器上,一般跑上2个项目就差不多了。
说了这php的好处,难道java就没有好处吗?那是不可能的。
JAVA1. java组件多。
我个人觉得单是这一点就盖过其他所有优点了,因为组件多,意味着用的人多,群众的眼睛是雪亮的。所以,java一定是好的,它已经积淀了太多的东西,不是一门新型语言能够随便替代的。你想要做什么,好好搜索java组件,可能都有你需要的功能,特别对于当下最流行的大数据产业,java更是占据一方。而php在这种场景就有点无能为力了。
2. java线程池,连接池,异步化方便。
其实这一点和第一点也很相似,也是因为组件多,所以要使用线程池连接池都很方便,这对于高并发高性能的场景来说,是绝对必要的。因为java的运行原因就是多线程的,所以不用每次都去初始化很多基本的东西,这省去了太多的时间,也因此大家可以忍受服务器启动的缓慢过程,因为只有一次。而php则是多进程的,每次都需要重新加载所有需要的代码,也因此无法将一些常用数据保存在内存,连接池也不大好做,异步操作更是一个大短板。
3. java是真正意义上的逻辑清晰。
因为,java中,你可以从一个进入可以借助IDE工具分析到最深层次的逻辑操作,对于每个字段,都可以清晰明了,这其实是接口和完全对象的一个使用优点。而php则做不了或者说很少有人费那劲去做这种事情,php可以说是半面向对象半面向过程开发,所以,在调用过程中插入几个自定义的函数调用是很正常的,那么你再想通过简单的IDE去分析调用链就不那么容易了。比如,对于第三方提供的接口,php就很难清楚的看出接口返回了什么,除非你把它打印出来,但是打印出来也不一定对,因为有些返回值的数据不一定有体现。这对于理解代码来说,增加了一个大大的门坎。
4. 虽说java编译比较烦,但是可以为你提前发现错误。
java的编译的确比较耗时,但是如果有明显的错误,编译是不会通过的,这就给你一个重新检查代码的机会。而php则不会,不管你写得多烂,都不会给你提示什么,而许多时候,往往就因为少写了个;分号,导致你排查数小时。
5. java远程调用方便,rmi,hessian,dubbo。
不管怎么样,远程和本地调用都很方便的知道相关的信息,而且java的同语言调用不是采用纯粹的http调用,而且维护一定的连接,从而大大提高性能。而php也有远程调用,但是相对来说就弱许多了。
php和java哪个更好,其实没有问题是没有绝对的好坏的,存在即合理。只是应用场景不一样罢了。