gradle构建编码
Have you ever wanted to build something but you had no idea what to do? Just as authors sometimes have “writer's block” it’s also true for developers.
您是否曾经想过建造一些东西,但又不知道该怎么做? 正如作者有时会遇到“作家障碍”一样,对于开发人员来说也是如此。
Together with my friend Jim we created a collection of application ideas which is intended to solve this issue once and for all!
我们与我的朋友Jim共同创建了一系列应用程序创意 ,旨在彻底解决此问题!
These applications are:
这些应用程序是:
This is not just a simple list of projects, but a collection that describes each project in enough detail so you can develop it from the ground up!
这不仅是一个简单的项目列表,而且是一个足够详细地描述每个项目的集合,因此您可以从头开始进行开发!
Each project specification contains the following:
每个项目规范都包含以下内容:
A list of User Stories which should be implemented (these stories act more as a guideline than a forced list of To-Do’s. Feel free to add your own features if you want)
应当实施的用户故事列表(这些故事充当指南,而不是强制性的待办事项列表。请根据需要随意添加自己的功能)
A list of bonus features that improve not only the base project but also your skills at the same time
一系列奖金功能 ,这些功能不仅可以改善基础项目,而且可以同时提高您的技能
All of the projects are divided into three tiers based on the knowledge and experience required to complete them. These tiers are:
根据完成项目所需的知识和经验,所有项目都分为三个层次。 这些层是:
Beginner — Developers in the early stages of their learning journey. Those who are typically focused on creating user-facing applications.
初学者 -处于学习旅程初期的开发人员。 那些通常专注于创建面向用户的应用程序的人。
Intermediate — Developers at an intermediate stage of learning and experience. They are comfortable in UI/UX, using development tools, and building apps that use API services.
中级 —开发人员处于学习和经验的中间阶段。 他们对使用开发工具和使用API服务的应用程序的UI / UX感到很满意。
Advanced — Developers who have all of the above, and are learning more advanced techniques like implementing BackEnd applications and Database services.
高级 —具有以上所有内容的人员,并且正在学习更高级的技术,例如实现BackEnd应用程序和数据库服务。
Below you’ll find 5 projects for each of the tiers (15 in total), but there are over 30 projects (at the moment) in this GitHub repository. Make sure you check it out as we are planning to add more projects in the future. You are welcome to help! (More about this in the Contributing section below ?)
在下面,您将为每个层找到5个项目 ( 总共15个 ),但是此GitHub存储库中目前有30多个项目 (目前)。 确保您将其签出,因为我们计划在将来添加更多项目。 欢迎您的帮助! (有关更多信息,请参见下面的“ 贡献”部分?)
Tier: 1 — Beginner
等级: 1 —初学者
Description: Create and store your notes for a later purpose!
描述 :创建并存储您的笔记以备后用!
localStorage
本地存储
Markdown Guide
降价指南
Marked — A markdown parser
已标记-降价解析器
Tier: 1 — Beginner
等级: 1 —初学者
Description: The Christmas Lights application relies on your development talents to create a mesmerizing light display. Your task is to draw seven colored circles in a row and based on a timer change the intensity of each circle. When a circle is brightened its predecessor returns to its normal intensity.
描述 :Christmas Lights应用程序依靠您的开发才能来创建令人着迷的灯光显示屏。 您的任务是连续绘制七个彩色圆圈,并根据计时器更改每个圆圈的强度。 当圆圈变亮时,其前身恢复到其正常强度。
This simulates the effect of a string of rippling lights, similar to the ones displayed during the Christmas Holidays.
这模拟了一连串的涟漪灯的效果,类似于圣诞节假期期间显示的效果。
Sample Image
样本图片
Adafruit LED Matrix
Adafruit LED矩阵
Tier: 1 — Beginner
等级: 1 —初学者
Description: It’s important for Web Developers to understand the basics of manipulating images since rich web applications rely on images to add value to the user interface and user experience (UI/UX).
描述 :对于Web开发人员来说,理解图像的基础很重要,因为富Web应用程序依赖图像来为用户界面和用户体验(UI / UX)增值。
FlipImage explores one aspect of image manipulation — image rotation. This app displays a square panel containing a single image presented in a 2x2 matrix. Using a set of up, down, left, and right arrows adjacent to each of the images the user may flip them vertically or horizontally.
FlipImage探索图像处理的一个方面-图像旋转。 该应用程序显示一个正方形面板,其中包含以2x2矩阵呈现的单个图像。 使用与每个图像相邻的一组向上,向下,向左和向右箭头,用户可以垂直或水平翻转它们。
You must only use native HTML, CSS, and Javascript to implement this app. Image packages and libraries are not allowed.
您只能使用本机HTML,CSS和Javascript来实现此应用程序。 不允许使用图像包和库。
How to Flip an Image
如何翻转图像
Create a CSS Flipping Animation
创建CSS翻转动画
Tier: 1 — Beginner
等级: 1 —初学者
Description: Practice and test your knowledge by answering questions in a quiz application.
描述 :通过在测验应用程序中回答问题来练习和测试您的知识。
As a developer, you can create a quiz application for testing coding skills of other developers. (HTML, CSS, JavaScript, Python, PHP, etc…)
作为开发人员,您可以创建测验应用程序以测试其他开发人员的编码技能。 (HTML,CSS,JavaScript,Python,PHP等)
User can start the quiz by pressing a button
用户可以通过按一个button
来开始测验
A message showing if he passed
or failed
the quiz
消息显示,如果他passed
或failed
的测验
Open Trivia Database
打开Trivia数据库
Quiz app built with React (wait for it to load as it is hosted on Heroku)
使用React构建的测验应用程序 (等待它在Heroku上托管时加载)
Tier: 1 — Beginner
等级: 1 —初学者
Description: The numeric system represented by Roman numerals originated in ancient Rome and remained the usual way of writing numbers throughout Europe well into the Late Middle Ages. Roman numerals, as used today, employ seven symbols, each with a fixed integer value.
描述 :以罗马数字表示的数字系统起源于古罗马,一直是整个欧洲一直写入中世纪晚期的常用数字写方法。 今天使用的罗马数字使用七个符号,每个符号具有固定的整数值。
See the below table the Symbol — Value pairs:
请参见下表“ 符号—值对”:
An explanation of Roman Numbers
罗马数字的解释
Roman Number Converter
罗马数字转换器
Tier: 2 — Intermediate
等级: 2-中级
Description: Create an application that will allow users to search for books by entering a query (Title, Author, etc). Display the resulting books in a list on the page with all the corresponding data.
描述 :创建一个应用程序,允许用户通过输入查询(标题,作者等)来搜索书籍。 在页面上的列表中显示包含所有相应数据的结果书籍。
User can enter a search query into an input
field
用户可以在input
字段中输入搜索查询
User can submit the query. This will call an API that will return an array of books with the corresponding data (Title, Author, Published Date, Picture, etc)
用户可以提交查询。 这将调用一个API,该API将返回带有相应数据( 书名 , 作者 , 出版日期 , 图片等)的书籍数组。
You can use the Google Books API
您可以使用Google Books API
BookSearch-React
BookSearch-React
Tier: 2 — Intermediate
等级: 2-中级
Description: Card memory is a game where you have to click on a card to see what image is underneath it and try to find the matching image underneath the other cards.
描述/控制 :卡记忆是一种游戏,您必须单击一张卡以查看其下方的图像,然后尝试查找其他卡下方的匹配图像。
User can see a grid with n x n cards (n
is an integer). All the cards are faced down initially (hidden
state)
用户可以看到带有nxn张卡片的网格( n
是整数)。 最初所有卡面朝下( hidden
状态)
User can click on any card to unveil the image that is underneath it (change it to visible
state). The image will be displayed until the user clicks on a 2nd card
用户可以单击任何卡以显示其下方的图像(将其更改为visible
状态)。 图像将一直显示,直到用户单击第二张卡
When the User clicks on the 2nd card:
当用户单击第二张卡时:
If there is a match, the 2 cards will be eliminated from the game (either hide/remove them or leave them in the visible
state)
如果有比赛,则将两张牌从游戏中删除(隐藏/删除它们或将它们保留在visible
状态)
If there isn’t a match, the 2 cards will flip back to their original state (hidden
state)
如果没有匹配项,则两张卡将翻转回其原始状态( hidden
状态)
Wikipedia
维基百科
Flip — card memory game
翻转—记忆卡游戏
SMB3 Memory Card Game
SMB3记忆卡游戏
Tier: 2 — Intermediate
等级: 2-中级
Description: Create an application that will convert a regular table with data provided by the User (optionally) into a Markdown formatted table.
描述 :创建一个应用程序,它将带有用户(可选)提供的数据的常规表转换为Markdown格式的表。
User can create an HTML table
with a given number of Rows and Columns
用户可以创建具有给定行数和列数的HTML table
User can insert text in each cell of the HTML table
用户可以在HTML table
每个单元格中插入文本
User can generate a Markdown formatted table
that will contain the data from the HTML table
用户可以生成Markdown formatted table
,该Markdown formatted table
将包含HTML table
的数据
User can preview the Markdown formatted table
用户可以预览Markdown formatted table
User can copy the Markdown formatted table
to the clipboard by pressing a button
用户可以通过按按钮将Markdown formatted table
复制到剪贴板
User can insert a new Row or Column to a specified location
用户可以在指定位置插入新的行或列
User can delete a Row or a Column entirely
用户可以完全删除行或列
User can align (to the left, right or center) a cell, a column, a row, or the entire table
用户可以将单元格 , 列 , 行或整个表格 ( 向左 , 向右或居中 )对齐
Markdown Guide
降价指南
Marked — A markdown parser
已标记-降价解析器
How to Copy to Clipboard
如何复制到剪贴板
Tables Generator / Markdown Tables
表格生成器/降价表
Tier: 2 — Intermediate
等级: 2-中级
Description: The purpose of String Art is to provide the developer with practice creating a simple animated graphic, using geometry in the animation algorithm, and creating something that’s visually pleasant to watch.
Description(说明) :String Art的目的是为开发人员提供练习,以创建简单的动画图形,在动画算法中使用几何图形以及创建视觉上令人愉悦的东西。
String Art draws a single multicolored line which smoothly moves until one end touches a side of the enclosing window. At the point, it touches a “bounce” effect is applied to change its direction.
弦乐艺术画了一条多色的线,该线平滑地移动,直到一端碰到封闭窗口的一侧。 此时,它会碰触“反弹”效果,以更改其方向。
A ripple effect is created by only retaining 10–20 images of the line as it moves. Older images are progressively faded until they disappear.
通过仅在移动时保留线条的10–20个图像来创建波纹效果。 较旧的图像逐渐消失,直到消失。
Animation libraries are not allowed. Use only Vanilla HTML/CSS/JavaScript.
不允许使用动画库。 仅使用Vanilla HTML / CSS / JavaScript。
Using Multistep Animations & Transitions
使用多步动画和转场
Animation Basics
动画基础
This project is very close, but has a small enclosing window and is monochromatic. Daniel Cortes
这个项目非常接近,但是有一个小的封闭窗口并且是单色的。 丹尼尔·科尔特斯
Tier: 2 — Intermediate
等级: 2-中级
Description: The classic To-Do application where a user can write down all the things he wants to accomplish.
描述 :经典的“待办事项”应用程序,用户可以在其中写下自己想要完成的所有事情。
User can see an input
field where he can type in a to-do item
用户可以看到一个input
字段,可以在其中input
待办事项
User can mark a to-do as completed
用户可以将待办事项标记为completed
localStorage
本地存储
Todo App built with React
使用React构建的Todo App
Tier: 3 — Advanced
等级: 3-高级
Description: Battleship Game Engine (BGE) implements the classic turn-based board game as a package that’s separated from any presentation layer. This is a type of architectural pattern that useful in many application since it allows any number of apps to utilize the same service.
描述 :战舰游戏引擎(BGE)将经典的回合制棋盘游戏实现为与任何表示层分离的软件包。 这是一种架构模式,在许多应用程序中都很有用,因为它允许任意数量的应用程序使用相同的服务。
The BGE itself is invoked through a series of function calls rather than through directly coupled end-user actions. In this respect using the BGE is similar to using an API or a series of routes exposed by a web server.
BGE本身是通过一系列函数调用而不是通过直接耦合的最终用户操作来调用的。 在这方面,使用BGE类似于使用API或Web服务器公开的一系列路由。
This challenge requires that you develop the BGE and a very thin, text-based presentation layer for testing that’s separate from the engine itself. Due to this, the User Stories below are divided two sets — one for the BGE and one for the text-based presentation layer.
这项挑战要求您开发BGE和一个非常薄的,基于文本的表示层以进行测试,并且与引擎本身是分开的。 因此,下面的用户故事分为两组-一组用于BGE,另一组用于基于文本的表示层。
BGE is responsible for maintaining the game state.
BGE负责维护游戏状态。
Caller can invoke a startGame()
function to begin a 1-player game. This function will generate an 8x8 game board consisting of 3 ships having a width of one square and a length of:
调用者可以调用startGame()
函数来开始1人游戏。 此功能将生成一个8x8游戏板,该游戏板由3艘船组成,其宽度为一个正方形,长度为:
startGame()
will randomly place these ships on the board in any direction and will return an array representing ship placement.
startGame()
会将这些飞船随机放置在任意方向上,并将返回一个表示飞船放置的数组。
Caller can invoke a shoot()
function passing the target row and column coordinates of the targeted cell on the game board. shoot()
will return indicators representing if the shot resulted in a hit or miss, the number of ships left (i.e. not yet sunk), the ship placement array, and updated hits and misses array.
调用者可以调用shoot()
函数,以传递游戏板上目标单元格的目标行和列坐标。 shoot()
将返回指示击球是否造成命中或未命中,剩余船只数量(即尚未沉没),船只布置阵列以及更新的命中和未命中阵列的指示符。
Cells in the hits and misses array will contain a space if they have yet to be targeted, O
if they were targeted but no part of a ship was at that location, or X
if the cell was occupied by part of a ship.
命中和未命中数组中的像元如果尚未被定位,则将包含一个空格;如果被针对但没有船的一部分位于该位置,则为O
如果该像元被船的一部分占据,则为X
User can see the hits and misses array displayed as a 2-dimensional character representation of the game board returned by the startGame()
function.
用户可以看到由startGame()
函数返回的游戏板的二维字符表示的击中和未击中数组。
Caller can specify the number of rows and columns in the game board as a parameter to the startGame()
function.
调用者可以将游戏板上的行数和列数指定为startGame()
函数的参数。
Caller can invoke a gameStats()
function that returns a Javascript object containing metrics for the current game. For example, the number of turns played, the current number of hits and misses, etc.
调用者可以调用gameStats()
函数,该函数返回一个Javascript对象,其中包含当前游戏的指标。 例如,玩的回合数,当前的命中和未击中的次数等。
Caller can specify the number of players (1 or 2) when calling startGame()
which will generate one board for each player randomly populated with ships.
呼叫方可以在调用startGame()
时指定玩家人数(1或2),这将为每个随机装有飞船的玩家生成一个棋盘。
shoot()
will accept the player number the shot is being made for along with the coordinates of the shot. The data it returns will be for that player.
shoot()
会接受shoot()
的球员编号以及拍摄的坐标。 它返回的数据将用于该玩家。
User can see the current game statics at any point by entering the phrase stats
in place of target coordinates. (Note that this requires the gameStats()
function in the BGE)
通过输入短语stats
代替目标坐标,用户可以随时查看当前的游戏静态stats
。 (请注意,这需要BGE中的gameStats()
函数)
Battleship Game (Wikipedia)
战舰游戏(维基百科)
Battleship Game Rules (Hasbro)
战舰游戏规则(Hasbro)
This YouTube video shows how a text-based Battleship Game is played.
该YouTube视频显示了如何播放基于文本的战舰游戏 。
The following example is provided as a demonstration of the Battleship game if it is unfamiliar to you. Remember you are to implement a text-based presentation layer for testing. Battleship Game by Chris Brody
以下示例是您不熟悉的《战舰》游戏的演示。 请记住,您将实现一个基于文本的表示层进行测试。 克里斯·布罗迪(Chris Brody)的《战舰游戏》
Tier: 3 — Advanced
等级: 3-高级
Description: Real-time chat interface where multiple users can interact with each other by sending messages.
描述 :实时聊天界面,多个用户可以通过发送消息彼此交互。
As an MVP(Minimum Viable Product) you can focus on building the Chat interface. Real-time functionality can be added later (the bonus features).
作为MVP(最低可行产品),您可以专注于构建聊天界面。 稍后可以添加实时功能(附加功能)。
User can see an input field
where he can type a new message
用户可以看到一个input field
,可以在其中input field
新消息
By pressing the enter
key or by clicking on the send
button the text will be displayed in the chat box
alongside his username (e.g. John Doe: Hello World!
)
通过按enter
键或单击“ send
按钮,文本将在chat box
显示在其用户名旁边(例如John Doe: Hello World!
)。
Users can join channels
on specific topics
用户可以加入有关特定主题的channels
Socket.io
套接字
How to build a React.js chat app in 10 minutes — article
如何在10分钟内构建React.js聊天应用程序—文章
Chatty2
闲话2
Tier: 3 — Advanced
等级: 3-高级
Description: API’s and graphical representation of information are hallmarks of modern web applications. GitHub Timeline combines the two to create a visual history of a users GitHub activity.
描述 :API和信息的图形表示是现代Web应用程序的标志。 GitHub时间轴将两者结合起来,以创建用户GitHub活动的可视历史记录。
The goal of GitHub Timeline is to accept a GitHub user name and produce a timeline containing each repo and annotated with the repo names, the date they were created, and their descriptions. The timeline should be one that could be shared with a prospective employer. It should be easy to read and make effective use of color and typography.
GitHub时间轴的目标是接受GitHub用户名,并生成一个包含每个存储库的时间轴,并用存储库名称,创建日期和描述进行注释。 该时间表应该是可以与潜在雇主共享的时间表。 它应该易于阅读并有效使用颜色和版式。
Only public GitHub repos should be displayed.
仅显示公共GitHub存储库。
GitHub offers two API’s you may use to access repo data. You may also choose to use an NPM package to access the GitHub API.
GitHub提供了两个API,您可以使用它们访问回购数据。 您也可以选择使用NPM软件包来访问GitHub API。
Documentation for the GitHub API can be found at:
可以在以下位置找到GitHub API的文档:
GitHub REST API V3
GitHub REST API第3版
GitHub GraphQL API V4
GitHub GraphQL API V4
Sample code showing how to use the GitHub API’s are:
显示如何使用GitHub API的示例代码为:
You can use this CURL command to see the JSON returned by the V3 REST API for your repos:
您可以使用以下CURL命令查看V3 REST API为您的存储库返回的JSON:
curl -u "user-id" https://api.github.com/users/user-id/repos
Tier: 3 — Advanced
等级: 3-高级
Description: Knowing how to spell is a fundamental part of being fluent in any language. Whether you are a youngster learning how to spell or an individual learning a new language being able to practice helps to solidify your language skills.
描述 :知道如何拼写是流利使用任何语言的基础。 无论您是学习拼写的年轻人,还是个人学习能够练习的新语言,都可以帮助您巩固语言能力。
The Spell-It app helps users practice their spelling by playing the audio recording of a word the user must then spell using the computer keyboard.
Spell-It应用程序通过播放用户必须使用计算机键盘进行拼写的单词的录音来帮助用户练习拼写。
Texas Instruments Speak and Spell
德州仪器(TI)说话和拼写
Web Audio API
网络音频API
Click and Speak
点击说话
Word Wizard for iOS
适用于iOS的Word向导
Speak N Spell on Google Play
在Google Play上讲N咒语
Tier: 3 — Advanced
等级: 3-高级
Description: Surveys are a valuable part of any developers toolbox. They are useful for getting feedback from your users on a variety of topics including application satisfaction, requirements, upcoming needs, issues, priorities, and just plain aggravations to name a few.
描述 :调查是任何开发人员工具箱的重要组成部分。 它们对于从用户那里获得有关各种主题的反馈非常有用,这些主题包括应用程序满意度,需求,即将到来的需求,问题,优先级,仅举一反。
The Survey app gives you the opportunity to learn by developing a full-featured app that will you can add to your toolbox. It provides the ability to define a survey, allow users to respond within a predefined timeframe, and tabulate and present results.
Survey应用程序使您有机会通过开发功能齐全的应用程序进行学习,并将其添加到工具箱中。 它提供了定义调查,允许用户在预定义的时间范围内做出响应以及将结果制成表格并进行呈现的功能。
Users of this app are divided into two distinct roles, each having different requirements:
此应用程序的用户分为两个不同的角色,每个角色都有不同的要求:
Survey Coordinators define and conduct surveys. This is an administrative function not available to normal users.
调查协调员定义并进行调查。 这是普通用户无法使用的管理功能。
Survey Respondents Complete surveys and view results. They have no administrative privileges within the app.
调查对象完成调查并查看结果。 他们在应用程序内没有管理权限。
Commercial survey tools include distribution functionality that mass emails surveys to Survey Respondents. For simplicity, this app assumes that surveys open for responses will be accessed from the app’s web page.
商业调查工具包括分发功能,该功能可将调查大量电子邮件发送给调查受访者。 为简单起见,此应用程序假定可以从该应用程序的网页访问为答复而打开的调查。
Libraries for building surveys: SurveyJS
建筑测量图书馆: SurveyJS
Some commercial survey services include: Survey Monkey and Typeform
一些商业调查服务包括: Survey Monkey和Typeform
You are welcome to contribute to the project in the GitHub repository! Any contribution is highly appreciated.
欢迎您在GitHub存储库中为该项目做出贡献! 非常感谢任何贡献。
You can contribute in two ways:
您可以通过两种方式做出贡献:
create an issue and tell us your idea. Make sure that you use the new idea label in this case;
提出问题并告诉我们您的想法。 在这种情况下,请确保使用新的想法标签。
You can also add your own examples to the projects after you have completed them. I highly encourage you to do this as it will show others what amazing things you have built! ?
完成示例后,您也可以将自己的示例添加到项目中。 我强烈建议您这样做,因为它可以向其他人展示您建造了哪些惊人的东西! ?
If the information from this article and from the repo was useful to you in any way, make sure you give it a star ?, this way others can find it and benefit too! Together we can grow and make our community better!
如果本文和回购中的信息对您有任何帮助,请确保给它加一个星号,这样其他人也可以找到它并从中受益! 我们可以共同成长,并使我们的社区变得更好!
Do you have any suggestions on how we could improve this project overall? Let us know! We’d love to hear your feedback!
您对我们如何整体改善该项目有任何建议吗? 让我们知道! 我们希望听到您的反馈!
Florin Pop: Twitter and website.
Florin Pop : Twitter和网站 。
Jim Medlock: Twitter and Medium
吉姆·梅德洛克(Jim Medlock) : Twitter和媒介
As a bonus, there’s a Weekly Coding Challenge where you can learn more by practicing your skills on real-world projects. Read The Complete Guide to find out how you can participate! ?
作为奖励,每周进行一次编程挑战,您可以通过在实际项目中练习技能来学习更多。 阅读完整指南 ,了解如何参加! ?
Originally published at www.florin-pop.com.
最初在www.florin-pop.com上发布。
翻译自: https://www.freecodecamp.org/news/here-are-some-app-ideas-you-can-build-to-level-up-your-coding-skills-39618291f672/
gradle构建编码