Github开源项目之:Objective-C

导航

内容来源于网络

前言

分享Github开源项目,在玩的过程中学习,2023年每天的目标就是研究几个项目,寻找点乐趣。

开源项目

001.PYPhotoBrowser

iOS 中使用简单的图片浏览器。

002.aria2gui

Aria2 的 Mac 客户端(下载工具),特点:

  • 集成了 aria2,运行后即完成配置工作
  • 多线程下载
  • 未完成任务退出可以自动保存
  • 支持迅雷离线,百度、115、360 等网盘的 aria2 导出(需要浏览器插件支持)
  • 支持 PT/BT,BT 速度跟种子热度有关,如果没有速度网盘离线后再下载
  • 在 Badge 显示整体下载速度
  • 任务完成通知

003.sequelpro

这是我到目前为止在 Mac 上发现最好用的 MySQL 管理工具。

004.xbar

Bitbar 是可以将任何(自己或别人写好的)脚本的输出到 Mac OS 的状态栏上。同时,支持自定义更新频率。例如:定时获取比特币的价格、HelloGitHub 项目的 star 数量,使用步骤如下:

  1. 运行该程序,选择脚本所在目录
  2. 确保脚本的有执行权限,赋予执行权限的命令:chmod +x script.sh
  3. 选择 Refresh all,刷新使之生效

005.PPRows

在 Mac 上计算你写了多少行代码的工具

  1. 支持检测参与计算的代码文件夹数量以及代码行数;
  2. 支持同时检测多文件/多文件夹代码;
  3. 支持自定义检测的文件类型,例如:C、Swift、Java 等类型的代码文件;
  4. 支持自定义需要忽略检测的文件夹, 例如:iOS 工程中的 Pods 文件夹;
  5. 支持中文与英文,跟随系统语言变化;
  6. 支持忽略代码中的空行,代码行数计算更精确;

006.PYSearch

一款综合(QQ 音乐、微信、美团、优酷、虎牙直播等多款 App)风格的搜索控制器

007.iTerm2

Mac 上超好用的终端软件

008.FLEX

用于 iOS 开发的一组应用内调试工具,功能强大且多,多到不一一列举了

#if DEBUG
#import "FLEXManager.h"
#endif

...

- (void)handleSixFingerQuadrupleTap:(UITapGestureRecognizer *)tapRecognizer
{
#if DEBUG
    if (tapRecognizer.state == UIGestureRecognizerStateRecognized) {
        // This could also live in a handler for a keyboard shortcut, debug menu item, etc.
        [[FLEXManager sharedManager] showExplorer];
    }
#endif
}
009.spectacle

OS X 系统下的窗口管理工具,通过快捷键方便、快捷的调整窗口大小和位置

010.iOS-Performance-Optimization

关于 iOS 性能优化梳理。包含基本工具、业务优化、内存优化、卡顿优化、布局优化、电量优化、 安装包瘦身、启动优化、网络优化等

011.RDM

轻松地改变 MacBook Retina 屏幕分辨率的工具

012.LSAnimator

通过使用 LSAnimator(Objective-C)或者 CoreAnimator(Swift)可以用少量的代码实现复杂而又易于维护的动画,并且弥补了 JHChainableAnimations 的致命缺陷。详细描述

013.lemon-cleaner

苹果电脑专属的清理工具。腾讯开源的免费 macOS 设备空间清理工具「柠檬清理」,支持深度清理、删除重复文件、卸载应用、状态栏显示等功能,能够一键轻松清理垃圾释放空间。

014.iOS-InterviewQuestion-collection

iOS 开发者在面试过程中,常见的一些面试题,建议尽量弄懂了原理,并且多实践。

015.SBSAnimoji

最长可以录60秒的 Animoji 画面,录制完成后可以直接按拓展按钮分享,可以学习AvatarKit的使用

016.SGPlayer

一款基于 AVPlayer、FFmpeg 的媒体资源播放器框架。

功能特点:

  • 支持播放360°全景视频
  • 支持手势、传感器操控360°全景视频
  • 支持双眼模式,具有畸变校正、色散校正
  • 支持 iOS、macOS、tvOS
  • 支持 H.264 硬件解码(VideoToolBox)
  • 支持 RTMP、RTSP 等直播流
  • 等等

017.MacPass

一款 macOS 平台的免费、开源、实用的密码管理工具

018.ish

在 iOS 上跑 Linux shell,可以通过 linux 命令操作你的 iOS 设备

019.JXCategoryView

几乎实现了当前所有主流 APP 的分类切换控制效果的库。效果丰富、配置简单,优点:

  • 使用协议封装指示器逻辑,可以为所欲为的自定义指示器效果
  • 提供更加全面丰富、高度自定义的效果
  • 使用子类化管理 cell 样式,逻辑更清晰,扩展更简单

020.LongestCocoa

写 Objective-C 的程序员肯定对冗长的描述性命名风格爱的深切。所以 Cocoa 框架里最长的方法或在常量名有哪些?该项目就是告诉你这些冗长名字都有那些

021.NudeIn

基于 UITextView 书写风格类似于 masonry 的 iOS 端富文本控件。它采用声明式(链式)方法定义富文本控件,与编程式的相比它所需的代码量更短、更直观和易用。

示例代码:

1、引入控件

#import "NudeIn.h"

2、声明控件为你的成员变量

@property (nonatomic,strong) NudeIn *attrLabel;

3、Do it yourself

_attrLabel = [NudeIn make:^(NUDTextMaker *make) {
    make.text(@"this is a ").font(14).color([UIColor blackColor]).attach();
    make.text(@"BlueLink").font(17).color([UIColor blueColor]).link(self,@selector(linkHandler:)).attach();
    make.text(@", and this is a ").font(14).color([UIColor blackColor]).attach();
    make.text(@"RedLink").font(17).color([UIColor redColor]).link(self,@selector(linkHandler:)).attach();
}];

3、对声明了 link 属性的部分定义回调

- (void)linkHandler:(NUDAction *)action {

    if ([action isKindOfClass:[NUDLinkAction class]]) {

        NUDLinkAction *linkAction = (NUDLinkAction *)action;

        UIAlertController *alertController = [UIAlertController alertControllerWithTitle:linkAction.string message:nil preferredStyle:UIAlertControllerStyleAlert];

        [alertController addAction:[UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
        }]];

        [self presentViewController:alertController animated:YES completion:nil];
    }
}

结果会是这样:

点击带有 link 属性的部分,将产生回调:

022.Karabiner-Elements

一款 macOS 的强大的修键软件

023.keycastr

在屏幕上实时显示当前按键的工具

024.iWeChat

还原、探索微信 APP 的项目。通过该项目借鉴、学习微信客户端开发的相关设计与技术,也可以学到如何分析一个第三方 APP 的方法

025.KafkaRefresh

内置多种动画、可自定义和灵活的 iOS 下拉刷新框架。中文文档

026.BackgroundMusic

macOS 音频工具,包含功能:自动暂停音乐、设置各个应用程序的音量、录制系统音频

027.GHDropMenuDemo

一款适用于多种场景、使用简单的筛选菜单组件。方便集成、快速选择出筛选项、对原有项目无污染

028.JHBlog

该项目整理了作者从初级 iOS 开发到中级的晋级之路的相关知识集合

029.OpenEmu

在 macOS 系统上回味下童年时的游戏,一个可以玩各种复古游戏的游戏机

030.Bob

一款支持划词翻译和截图翻译 Mac 端翻译软件。系统默认划词工具有些不支持的 PDF 文件,通过这个软件截图翻译功能,可以舒服的解决阅读这些文件时需要翻译的问题

031.textmate

一款 macOS 上著名的开源代码编辑器。它界面简洁,功能强大。支持高效的 Snippets 功能、主流版本控制系统、自定义主题、实时 HTML/Markdown 预览等功能

032.Zebra

用于越狱的 iOS 设备的软件包管理器

033.simplenote-macos

一款 macOS 上免费开源的记事本应用

034.vienna-rss

适用于 macOS 的免费 RSS 订阅工具

035.PHPWord

提供了读/写多种文档文件格式的 PHP 库。支持 Microsoft Office、富文本(RTF)等文档格式

<?php
require_once 'bootstrap.php';

// Creating the new document...
$phpWord = new \PhpOffice\PhpWord\PhpWord();

/* Note: any element you append to a document must reside inside of a Section. */

// Adding an empty Section to the document...
$section = $phpWord->addSection();
// Adding Text element to the Section having font styled by default...
$section->addText(
    '"Learn from yesterday, live for today, hope for tomorrow. '
        . 'The important thing is not to stop questioning." '
        . '(Albert Einstein)'
);

/*
 * Note: it's possible to customize font style of the Text element you add in three ways:
 * - inline;
 * - using named font style (new font style object will be implicitly created);
 * - using explicitly created font style object.
 */

// Adding Text element with font customized inline...
$section->addText(
    '"Great achievement is usually born of great sacrifice, '
        . 'and is never the result of selfishness." '
        . '(Napoleon Hill)',
    array('name' => 'Tahoma', 'size' => 10)
);

// Adding Text element with font customized using named font style...
$fontStyleName = 'oneUserDefinedStyle';
$phpWord->addFontStyle(
    $fontStyleName,
    array('name' => 'Tahoma', 'size' => 10, 'color' => '1B2232', 'bold' => true)
);
$section->addText(
    '"The greatest accomplishment is not in never falling, '
        . 'but in rising again after you fall." '
        . '(Vince Lombardi)',
    $fontStyleName
);

// Adding Text element with font customized using explicitly created font style object...
$fontStyle = new \PhpOffice\PhpWord\Style\Font();
$fontStyle->setBold(true);
$fontStyle->setName('Tahoma');
$fontStyle->setSize(13);
$myTextElement = $section->addText('"Believe you can and you\'re halfway there." (Theodor Roosevelt)');
$myTextElement->setFontStyle($fontStyle);

// Saving the document as OOXML file...
$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'Word2007');
$objWriter->save('helloWorld.docx');

// Saving the document as ODF file...
$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'ODText');
$objWriter->save('helloWorld.odt');

// Saving the document as HTML file...
$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'HTML');
$objWriter->save('helloWorld.html');

/* Note: we skip RTF, because it's not XML-based and requires a different example. */
/* Note: we skip PDF, because "HTML-to-PDF" approach is used to create PDF documents. */
036.Stay

移动端 Safari 浏览器插件管理器。提供了丰富的脚本管理能力,还支持运行油猴插件。内置的脚本库提供了 App 防跳转、广告拦截、自动展开文本等功能

037.LuLu

免费开源的 macOS 防火墙软件

038.phpbrew

一个编译、安装、管理多版本 PHP 的工具。有了它就可以方便地在不同 PHP 版本之间自由切换啦,特性:

  • 配置选项简化为 Variants 无需担心路径问题
  • 集成至 bash/zsh 等,易于切换版本
  • 易于安装、启用 PHP 扩展

039.UTM

运行在 iOS 和 macOS 系统上的虚拟机。通过 UTM 你可以在无需“越狱”的情况下,在 iPhone 和 iPad 上运行 Windows、Linux 等操作系统

040.iOSInterviewQuestions

iOS 面试题集合(附答案)

041.Sloth

一款 macOS 系统下显示进程打开的文件、socket、管道等信息的工具。就像桌面版的 lsof,快来试试吧

042.hammerspoon

强大的 macOS 自动化工具。通过该项目可以方便地用 Lua 脚本与 macOS 系统 API 进行交互,实现操作窗口、鼠标、文件系统、屏幕等功能。可用于打造各种 macOS 便捷工具

hs.hotkey.bind({"cmd", "alt", "ctrl"}, "W", function()
  hs.notify.new({title="Hammerspoon", informativeText="Hello World"}):send()
end)
043.HBDNavigationBar

自定义 UINavigationBar 的组件,用于各种状态之间平滑切换

Usage:

@property (nonatomic, assign) UIBarStyle hbd_barStyle;   // 导航栏样式
@property (nonatomic, strong) UIColor *hbd_barTintColor; // 导航栏背景颜色
@property (nonatomic, strong) UIImage *hbd_barImage;     // 导航栏背景图片
@property (nonatomic, strong) UIColor *hbd_tintColor;    // 导航栏按钮颜色
@property (nonatomic, strong) NSDictionary *hbd_titleTextAttributes; // 导航栏标题属性
@property (nonatomic, assign) float hbd_barAlpha;        // 导航栏背景透明度
@property (nonatomic, assign) BOOL hbd_barHidden;        // 是否隐藏导航栏
@property (nonatomic, assign) BOOL hbd_barShadowHidden;  // 是否隐藏导航栏下面的阴影
@property (nonatomic, assign) BOOL hbd_backInteractive;  // 当前页面是否响应右滑返回,以及通过 `UINavigationBar` 的返回按钮返回,默认是 YES
@property (nonatomic, assign) BOOL hbd_swipeBackEnabled; // 当前页面是否可以右滑返回,默认是 YES

持续更新中...

0 0 投票数
文章评分
订阅评论
提醒
guest
0 评论
最旧
最新 最多投票
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x
滚动至顶部