Tag: 开源

开源贡献指南

这个周末,我参加了在PayPal举行的“女性密码编程硅谷”黑客马拉松,该活动着重于社会正义。 我的团队由在JavaScript,React,数据科学,TypeScript,iOS以及其他语言和框架方面具有各种技术技能的人员组成。 由于我们拥有广泛的技术堆栈,并且致力于通过开源贡献来促进社会公正,因此我们决定选择退出单一产品构想。 我们希望为生活和喘息的开源项目做出贡献,这些项目将在黑客马拉松之后继续存在。 目标是在一天结束之前有一个开放的PR(拉动请求)。 因此,我们每个人都在GitHub上搜索了有趣的OS(开源)项目,我将分享一些有关如何开始为开源做贡献的技巧。 F / OSS是自由或开源软件的缩写。 这与专有软件相反,在专有软件中,该软件受版权限制,并且通常对用户隐藏源代码。 Frances,我们负责黑客马拉松的团队负责人,已经整理了一份开源GitHub存储库的方便列表。 在此处查看入门指南:https://github.com/ayunav/social-justice-foss/blob/ayunav-os-projects-list/os-projects-list.md。 我浏览了清单并按语言过滤了项目。 例如,Swift。 检出项目并根据以下条件对其进行评估: 这个项目对您有多有趣? 回购如何更新和维护? 上一次提交是什么时候? 上次拉取请求何时合并? 是否有未解决的问题? 是否有任何未解决的问题可以解决? 它在项目的自述文件中是否有贡献性指南? 在此处签出示例:https://github.com/systers/FirstAide-Android/wiki/PR-Best-Practices 3.选择一个未分配的问题/打开您自己的问题/报告一个问题,并在问题线程中对要处理该问题的回购维护者进行评论。 4.分叉仓库,签出新的分支,然后开始开发。 5.如有疑问,请查看贡献准则。 6.完成后,提交拉取请求。 7.用甜甜圈庆祝。 🎉

新手贷款[项目跟踪备忘录]!

目标: 创建xib文件的基本概念并检测用户行为 1.了解带有Localizable.strings的Xib GUI编码 2.基本委托和通知示例 3.广告横幅 用代码创建XIB gui字符串文件:/Pieces/HouseStrings.m 代码文件:/Main/MainTableViewController.m 关键字:NSLocalizedString 首先检查viewDidLoad()。 点击单选按钮 观察者功能onCheckRedioButton() HouseDelegate类:全部计算功能。 NSNotificationCenter类:观察者onCheckRadioButton和onClickRadioButton。 拆卸GUI 标签= MainTableViewCell.xib + MainTableViewCell.m + MainTableViewCell.h 段背景颜色= MainSubmitViewCell.xib + MainSubmitViewCell.m + MainSubmitViewCell.h 第一次购买或第二次购买= MainFirstTableViewCell.xib 仅五年或两年的广播= MainHouseYearsTableViewCell.xib + MainHouseYearsTableViewCell.m + MainHouseYearsTableViewCell.h cellForRowAtIndexPath()用于循环IndexPath.row以加载每个单元格 源代码:https://github.com/compass00/LoanCaculate 源代码:myGitHub 20171211:研究此项目,尚未关于广告横幅

我的开放源代码项目的Xcode项目结构

最近,我决定将一些自定义的iOS控件开源。 因此,我启动了Xcode,选择“ Create a new Xcode project ”,然后陷入困境……我应该选择哪个项目模板? 我必须将自定义控件设置为Cocoa Touch Framework,但与此同时,我还需要一个示例应用程序进行测试,以及在发布到Github之后展示我的自定义控件。 显然,我们可以使用CocoaPods命令: pod lib create生成具有适当结构的Xcode项目,并立即开始进行处理。 但是,我希望对项目结构具有更大的灵活性和更多的控制权,因此我决定手动设置自己的项目。 经过一番研究和反复试验,我得出了一个适合任何开源项目的项目结构。 因此,我想与任何有兴趣的人分享这一点,希望这可以为计划开始其第一个开源项目的其他开发人员提供一个良好的起点。 😃 让我们开始创建所需的Xcode项目。 第一个项目将是包含所有开源项目源代码的项目。 确保选择“ Cocoa Touch Framework ”作为所需项目模板。 出于演示目的,让我们将项目命名为“ MyOpenSource ”。 为开源项目源代码完成项目创建后,您将需要为示例应用程序创建另一个项目。 这次选择“ 单一视图应用程序 ”作为项目模板,并将其命名为“ MyOpenSourceExample ” 现在,您应该能够看到已经创建了两个Xcode项目。 双击MyOpenSourceExample.xcodeproj以启动示例项目,然后将MyOpenSource.xcodeproj从finder中拖到示例项目中,如下面的屏幕快照所示。 Xcode将提示您将示例项目保存在新的工作区中。 什么是工作区? 根据Apple文档: 工作区是将项目和其他文档分组的Xcode文档,因此您可以一起使用它们。 点击“ 保存 ”继续。 将工作区命名为MyOpenSourceExample并将其保存在根文件夹中。 现在,您可以关闭示例项目并启动刚刚保存的工作区。 注意,Xcode现在在项目导航器中同时显示MyOpenSource和MyOpenSourceExample 。 为了使MyOpenSourceExample能够访问MyOpenSource的代码,您必须将MyOpenSource框架链接到示例项目。 在项目导航器中选择MyOpenSourceExample ,然后打开“ Build Phases ”选项卡。 展开“ […]

WWCodeDFW iOS工作区入门

从AppStore下载最新版本的Xcode。 如果您的操作系统由于某种原因不支持Xcode 9,请随时从此处下载Xcode 8.3.3。 如果您是git的新手,那么GitHub会给您带来巨大的挑战,以帮助您入门。 https://try.github.io/levels/1/challenges/1 分叉WWCodeDFW存储库,并将分叉克隆到本地计算机。 要运行构建应用程序,请选择要定位的模拟器,然后按左上角的播放按钮! 而已! 随意游玩并在iOS生态系统中感到舒适。 浏览问题以寻找开始的地方,并确保在准备出钱时创建请求请求!

对Lona的贡献+如何在macOS上设置Ruby环境

本周初,我正在查看Airbnb的开源项目,并且发现了一个名为Lona的项目。 Lona是用于构建设计系统并使用它们生成跨平台UI代码,Sketch文件和其他工件的工具的集合。 (来自Lona的GitHub存储库) 我真的很喜欢这个项目的想法,所以我选择它作为我的开源课程的下一个项目。 没有打开很多问题,而且我不确定一开始是什么好任务。 我使用了项目自述文件中的提示,其中指出: 如果您有兴趣在公司中贡献或使用它,请随时打开GitHub问题或在Twitter @dvnabbott上与我联系。 (Lona README) 因此,我发了推文给正在维护该项目的Devin: 在开放源代码开发方面有一些经验,我知道维护者和贡献者之间的交流非常重要。 我相信,这是围绕该项目建立社区并让人们希望将来做出更多贡献的关键。 我感谢他的时间,并提供了很多帮助。 让我们回到项目本身。 Lona包含3个部分: Lona Components —跨平台组件的数据格式.component Lona Studio —用于设计.component文件的GUI工具,Swift Mac应用程序。 Lona Compiler —一种CLI工具和API,用于从.component文件,ReasonML生成UI代码 从上面的推文中可以看到,我选择了Lona Studio作为我的贡献。 我决定在接下来的几个月中专注于Swift开发,因此我想尽可能多地使用这种语言。 另外,我发现它很有趣,因为我以前从未使用过Mac应用程序,据我所知,macOS开发与iOS开发有很大不同。 设置项目 首先,我必须在机器上设置项目。 对我来说这不是小事,因为我没有一个先决条件。 为了从源代码构建Lona Studio,您需要安装以下工具: 捆扎机 可可豆 迦太基 我的Mac上已经安装了CocoaPods和Carthage,但是我没有Bundler,甚至没有听说过。 Bundler通过跟踪和安装所需的确切gem和版本,为Ruby项目提供了一致的环境。 (来自bundler.io) 我以前从未接触过Ruby,因此我必须设置Ruby环境才能安装Bundler。 首先,您需要安装RVM(Ruby版本管理器)。 这是我用于安装它的步骤: 安装GnuPG 酿造安装gnupg gnupg2 2.安装RVM的密钥 gpg –keyserver hkp://pool.sks-keyservers.net –recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB 3.运行经过验证的安装 […]

如何在macOS上构建Firefox浏览器?

在开始这项工作之前,我有一个很好的灵感故事。 Mohammad Zahidur Ra​​hman博士参加了我们的软件工程课程。 他始终表示要求他的学生开始使用大型开源软件构建并尝试对其进行编辑。 从那时起,我希望做这种工作。 虽然课程已经完成,但我没有时间工作! 这样,我过去了大约5个月。 当时,我忙于2018年的MozFest-伦敦,因为我被选为该会议的主持人。 由于签证复杂,我无法参加。 因此,这是完成这项工作的宝贵时间。 所以我只是坐下来开始。 起初,我不知道该过程称为构建。 通常,我们使用C / C ++,我们将其称为编译。 经过一番搜索后,我在developer.mozilla.org上看到了一篇文章,名为《为macOS构建Firefox》。 哦,太好了! 开始了! 但是一开始我就遇到了一个很大的错误。 因为我刚从Mercurial克隆并开始构建! 糟糕! 然后再次开始研究。 我一次又一次地敲打了孟加拉Mozilla社区负责人Mak。 最后,他给了我建议敲Mozilla的构建工程师。 还建议使用IRC。 在我们上一次在加尔各答举行的l10n研讨会上,他向我展示了如何使用IRC。 顺便说一句,我是NDA签署的Mozilla志愿者和代表。 因此,我很容易收到构建工程师的电子邮件。 我开始邮寄并得到了一些回应。 他们建议我通过IRC进行联系。 同时,我从他们那里得到了一些重要的指导。 首先,他们说您没有安装Homebrew。 现在该玩了。 在构建适用于macOS的Firefox时,我注意到有一行“单行设置”(首先尝试!)。 Homebrew是macOS的软件包管理器。 顺便说一句,MacPorts也可以。 它也是包管理器。 我安装了两次,然后再次出错。 现在在IRC上,有人建议我卸载MacPorts。 好的。 我卸载了它。 现在我要前进了。 1. xcode之前已安装在我的电脑上,因此也不需要。 2.1。 安装辅助构建工具:已安装Homebrew。 brew install yasm mercurial gawk ccache python […]

向您的iOS应用添加帮助

我现在在应用商店中有9个应用,每个应用都有一个“帮助”组件。 前几个应用程序仅显示了一个UIWebView以及一些链接的html页面。 完全没有上下文。 现在,我已经开发了一些代码,这些代码使我可以轻松添加特定于视图的帮助,而只为希望显示帮助的每个视图添加几行代码。 冒着使自己陷入困境并遭受经验丰富的开发人员的愤怒的可能,这些开发人员可能会批评我的代码,Swift开发社区的开放共享使我感到鼓舞,我可以免费使用该代码并记录如何使用它。 YouTube教程 如果您想观看安装和配置的完成方式,请观看https://www.youtube.com/watch?v=WcUkahx3j8s 安装 您可以从我的GitHub页面获取CTHelp和示例应用程序,网址为https://github.com/StewartLynch/CTHelp 如果您从GitHub克隆或下载了CTHelp,您将能够看到并测试示例应用程序。 要将其集成到项目中,您要做的就是确保已为应用程序初始化CocoaPods,然后将以下内容添加到podfile中。 并运行pod Install 您现在可以为您的项目打开.xcworkspace 向ViewController添加帮助 对于您希望添加帮助的任何ViewController,可以执行以下操作: 在您的ViewController中导入CTHelp 创建一个按钮,该按钮将请求通过其操作显示帮助。 在操作内,执行以下代码,或编写将实现该代码并在操作内调用该函数的函数。 代码 最简单的实现方法是通过创建CTHelp的新实例,从以下代码开始代码: 让ctHelp = CTHelp() 现在,您可以按住Option键单击 CTHelp()类名称以显示快速帮助 。 在声明之后复制所有代码,并将其粘贴到您的函数中。 例 这就是您的动作。 每个CTHelpItem具有三个必需的参数。 CTHelpItem(标题:字符串,helpText:字符串>,imageName:字符串) 如果将helpText留为空字符串“”,则图像将占据整个视图。 如果imageName保留为空字符串,则helpText将占据整个视图。 如果两者都存在,则图像视图将显示具有该名称的图像并将其缩放到最大240px X 230px。 剩余的高度将由helpText占用。 因此,最好将图像设计为宽度为240 px,并具有一定的高度,以允许在视图中显示helpText。 如果文本大于textview中适合的文本,则视图将滚动。 注意:必须将具有指定名称的图像添加到项目的资产中 CTHelp.appendDefaults 帮助卡堆栈的末尾可以显示两个可选卡。 如果您选择不使用appendDefaults功能,则不会添加其他卡。 ctHelp.appendDefaults(companyName:String,emailAddress:String ?, data:Data ?, webSite:String ?, companyImageName:String?) 电子邮件地址 如果您为emailAddress分配一个值,则会创建并显示一张新卡,询问用户是否希望与开发人员联系。 指定的电子邮件地址将是电子邮件发送到的地址。 […]