iOS开发的标准语言是objective-c。是c的一种超集, 它是对c的扩展,支持面向对象编程。像后来的一些高级语言java,c#等都借鉴了该语言的面向对象特性。 当然在iOS开发过程中,也支持c/c++语言与原生的objective-c混编。
学习iOS开发是一个系统性的过程,需要做好多方面的准备,以便能够有效地掌握相关技能。以下是详细的准备步骤:
静电说:这是一篇技术流的干货,作者从开发者的角度给我们分析了为什么设计师在Sketch中设计出的设计稿与开发出来的效果会产生差异。不妨来读一读吧!所以,各位设计师小伙伴不要过分苛责开发工程师,有时候真不是他们的锅,但是他们在努力让你的设计稿变的更好。 良好的沟通与协作,是解决一些问题的关键。但是,咱们首先要明白,实现原理。
现在我可以自豪地说,我已经接近一名全栈工程师了,已经熟悉了后端开发的各种工具、环境和一些后端工作的方式。
在移动端开发过程中,设置app的图标尺寸是一个非常常见的操作,而且在设置app图标尺寸的时候是要严格按照移动端的标准来设置,尤其是iOS版本的app图标尺寸要求非常严格,如果设置的图标尺寸不符合标准,app上架的时候就会出错,所以在设置app图标尺寸的时候一定要注意。iOS开发中通过Assets设置启动图片以及icon处理工具Prepo(图片放大缩小不失真,自动生成@2x、@3x,图片类型随意切换),再也不用担心美工给的图片规格不合适、不满意了,大大方便了iOS开发者的开发,也节省了沟通时间,提高了开发效率。
前言 iOS开发中,权限问题不可避免; 写了文章iOS开发中的这些权限,你搞懂了吗?和[续]iOS开发中的这些权限,你搞懂了吗?,介绍了系统涵盖的16种权限访问的原理和方法; 开源库JLAuthorizationManager,整理并提供常用权限访问的便捷方法; 开源库基本使用 针对相册、蜂窝网络、相机、麦克风、通讯录、日历、提醒事项、定位、媒体资料库、语音识别、Siri等,可统一使用一下的方法入口: /** 请求权限统一入口 @param authorizationType 权限类型 @para
我们都知道开发iOS应用是少不了苹果证书的,对于一个新手来说,这个是比较头疼的是,毕竟真机测试,发布蒲公英测试,苹果提供的内测testflight,上传到app-store都要跟苹果证书打交道,上面这些步骤最好就是自己走一遍,不然你对苹果的开发证书的制作流程还是会一头雾水,其实说到底就是证书对应测试环境和发布环境,配置证书也是对应测试环境和发布环境,然后你需要创建一个app ID去把证书和配置文件联系起来。
本文将深入探讨iOS平台上常用的网络抓包工具,包括Charles、克魔助手、Thor和Http Catcher,以及通过SSH连接进行抓包的方法。此外,还介绍了克魔开发助手作为iOS应用开发的辅助工具,提供的全方面性能监控和调试功能。 在iOS应用开发过程中,网络抓包工具是至关重要的工具之一。它们可以帮助开发者监控应用程序的网络请求和响应,排查问题并优化性能。本文将介绍几种主流的iOS网络抓包工具,以及它们的特点和适用场景。
iOS开发证书是用于测试APP,在开发过程中安装到苹果手机真机测试APP的运行情况。
不管是在Android开发还是iOS开发过程中,有时候我们需要经常根据设备的一些状态或信息进行不同的设置和性能配置,例如横竖屏切换时,电池电量低时,内存不够时,网络切换时等等,我们在这时候需要进行一些友好的提示和保护设备的一些设置。在Android开发中我们可以通过DeviceUtil这个工具类来获取设备网络状态、电池电量等各种状态信息,那么在iOS开发中,我们是否也能获取到设备的各种状态信息呢?答案是肯定的,本文就主要来学习一下在iOS开发过程中如何获取到设备的各种状态信息。 在iOS中要获取设备
项目开发过程中,在完成iOS项目——项目开发环境搭建之后,我们首先需要考虑的就是我们的项目的整体框架与导航架构设计,然后在这个基础上考虑功能模块的完成。 一 导航架构设计 一款App的导航架构设计
在开发iOS应用时,有时会遇到一个错误信息:“Cannot be registered to your development team. Change your bundle identifier to a unique string to try again”。这个错误通常是由于Bundle Identifier不唯一导致的,本文将详细解释这个问题的原因和解决方法。
最近大火的iPhone XS Max和iPhone XS,不知道有没有同学已经下手了呢?一万三的价位确实让很多人望而却步啊。据说为了赢得中国的用户,专门出了双卡双待的,可想而知中国市场这块“肥肉”人人都想要。
在iOS学习和开发过程中,经常会遇到一些很小的知识点和问题,一两句话就可以解释清楚了,这样的知识点写一篇随笔又没有必要,但是又想mark一下,以备不时之需,所以就有了本文。后面遇到一些小的知识点会不断更新和整理。 Question 1: 在iOS开发中经常会遇到定义属性时有getter赋值语句,在UIView.h文件中有下面这么一行代码,这里的getter表示什么意思呢,又有什么作用呢? //在UIView.h文件中有这么一行代码 @property(nonatomic,getter=isUserInt
相比往年的iOS招聘,相比之前波涛汹涌,这会已经是相对风平浪静.但是实际上这样的风平浪静只不过是由于无法坚守的iOS 开发者相继退出而已.但是该有的竞争压力还是依然存在.只不过是暗流涌动.
在开发项目之前,我们需要做一些准备工作,了解iOS扩展——Objective-C开发编程规范是进行开发的必备基础,学习iOS学习——Xcode9上传项目到GitHub是我们进行版本控制和代码管理的选择之一,明白iOS学习——iOS项目Project 和 Targets配置详解则更利于我们今天对完整项目开发环境的搭建,这些内容在在之前的博文中都已经有了一些总结和步骤说明,具体详情可以戳链接查看。 开发一个完整的App,不同于我们平时学习和练习时随意新建一个project,然后写我们示例代码就完了。要开
在iOS 9之后,苹果默认要求App访问的url必须为https的安全链接,http链接确实是不安全的,如果在开发过程中请求失败,控制台显示http不安全要用https之类的信息的话,那就是由于这个原因了。但是由于并非所有开发者都会去申请HTTPS证书来支持HTTPS访问,所以还是可以进行设置来正常访问HTTP的,方法如下:
在开发过程中,在调试过程中经常打印不出自己想要的数据格式,还时常报警告,所以整理了一下iOS中用NSLog打印各种数据类型的样式。 整型占位符说明 : %d : 十进制整数, 正数无符号, 负数有 “-” 符号; %o : 八进制无符号整数, 没有 0 前缀; %x : 十六进制无符号整数, 没有 0x 前缀; %u : 十进制无符号整数; %hd : 短整型 %ld , %lld : 长整型 %zd : 有符号 NSInteger型专用输出,在iOS开发中应牢记。 %tu : 无符号NSUInteger的输出 %lu : sizeof(i)内存中所占字节数 字符占位符说明 : %c : 单个字符输出; %s : 输出字符串; 浮点占位符说明 : %f : 以小数形式输出浮点数, 默认 6 位小数; %e : 以指数形式输出浮点数, 默认 6 位小数; %g : 自动选择 %e 或者 %f 各式; 其它形式占位符 : %p : 输出十六进制形式的指针地址; %@ : 输出 Object-C 对象; 占位符附加字符 : – l : 在整型 和 浮点型占位符之前, %d %o %x %u %f %e %g 代表长整型 和 长字符串; – n(任意整数) : %8d 代表输出8位数字, 输出总位数; – .n : 浮点数 限制小数位数, %5.2f 表示 5位数字 2位小数, 字符串 截取字符个数; – - : 字符左对齐;
一直从事iOS原生APP开发,对H5前端开发那一套因为无知所以一直生畏,所以很长的一段的时间里只做原生的开发,但对跨平台的这种技术操作始终抱有很大兴趣。由于工作需要做个业务相对简单的应用,而又要iOS和Android,所以开始正式着手H5。
Swift作为Apple推出的新编程语言,旨在简化iOS和OS X应用的开发过程。它被描述为“Objective-C without the C”,意味着它在保持Objective-C核心功能的同时,提供了更简洁、更现代的语法2。这使得学习Swift成为iOS开发者或计划成为iOS开发者的首要任务2。
作者简介 朱天超,携程技术中心基础业务研发部iOS开发工程师,从事一线iOS开发,偶尔也写写脚本做些工具。 *视频时长约38分钟,请在WiFi环境下观看* 小程序是一种不需要下载安装即可使用的应用。它实现了应用“触手可及”的梦想,用户扫一扫或者搜一下即可打开应用;也体现了“用完即走”的理念,用户不用关心是否安装太多应用的问题。 早在2016年9月,携程就获得小程序内测名额,在对微信文档规则调研、确定需要开发的业务之后,就开始了风风火火的开发。 回顾三个多月的开发过程,其中碰到了各种问题,也尝试了一些解决办
在iOS开发过程中一直都是使用模拟器进行调试,在模拟器上有很多不适应的地方,但是其实在模拟器上也有很多其他的功能,在本文中主要对模拟器的一些基本功能进行总结一下。
了解并选择合适的iOS代码混淆工具对于开发者来说至关重要。本文将介绍一款功能强大的iOS代码混淆工具软件——IPA Guard,包括其支持的语言、主要特性、混淆模式和使用场景,帮助开发者解决代码重复上架和机审问题。
该文介绍了如何构建一个完整的错误体系,包括错误码、错误提示、错误处理等方案,并给出了具体的例子和代码。
1.1 登录苹果开发者中心 https://developer.apple.com/
在iOS或Android等移动端开发过程中,经常遇到很多需要我们输入信息的情况,例如登录时要输入账号密码、查询时要输入查询信息、注册或申请时需要填写一些信息等都是通过我们键盘来进行输入的,在iOS开发过程中,一般用于进行输入信息的有两类:UITextField和UITextView,前者是单行输入文本框,后者是可滑动的多行输入文本框,在这整个开发过程中,我们需要控制键盘的弹出和收起、在输入结束的时候获取输入的信息,此外,我们还需要保证在键盘弹起的时候不遮挡我们输入的文本框。今天,我们就主要来说一下文本框
在iOS开发过程中,如果要使用到一些跟特定系统版本特性有关的功能,或者要适配低版本系统的用户,还有一些方法是新版本系统才有的,有一些方法在新版本中已经弃用了,这都需要对不同系统版本的设备进行分别的处理,而这有个前提就是判断系统的版本号。
👆点击“博文视点Broadview”,获取更多书讯 产品经理和开发者之间的关系总被调侃,主要是因为两者在工作中经常不和谐,甚至因此产生了很多互联网段子。 我是开发出身的产品经理,并且擅长调节矛盾,所以在工作中几乎没与开发者发生过大冲突。 但不可否认,产品经理和开发者之间发生矛盾确实是常态,出现分歧的原因有很多,最核心的原因是大多数产品经理不太懂技术,而且沟通能力欠缺。 既然产品经理和开发者之间的矛盾如此深,那么是不是一定不可调和呢? 也不完全是,因为只要是问题,就一定有解决办法。 对于以解决问题为
在iOS开发过程中,我们在一些源码中经常会看到导包的时候有的用#import进行导包,但是有的的时候也会看到用@class进行导包,那么这两种方式有什么区别呢? 一 @class和#import的主要区别 首先说一下最主要的区别: 使用#import引入一个类的头文件,编译时会将该类的头文件中的所有信息都引入,包含属性和方法; 使用@class仅仅是告诉编译器这是一个类,并不会因入该类的其他信息,而我们所关心的也仅此一点,而不需要知道该类的内部有哪些属性和方法,因此使用@class可以提升编译性能
最近在处理iOS问题时遇到了好几个坑,这里做个总结,也希望能帮助到遇到同样问题的同学。
整理自:IOS 整体框架类图值得收藏 一 整体框架 在iOS开发过程中,对iOS整体框架的了解和学习是必不可少的一个环节,今天我们就好好来了解一下iOS的整体框架。首先贴一个关于iOS的框架介绍:iOS系统框架概述。我们通常称呼iOS的框架为Cocoa Touch框架,Cocoa Touch是一个框架的集合,里面包含了众多的子框架。每一个子框架都是一个目录,包含了共享资源库,用于访问该资源库中储存的代码的头文件,以及图像、声音文件等其他资源,共享资源库定义应用程序可以调用的函数和方法。框架中的类相互
在移动应用实际开发过程中,往往会有多个scrollview嵌套的界面需求,这种需求已经司空见惯,解决方案也多种多样,这里就介绍一下我认为最优的解决方案。
本文介绍了从0开始做Android开发的一些经验,包括开发环境的搭建、第一个APP的创建、组件的使用和常见问题的解决方法。同时,文章也介绍了如何利用Android开发一些实用的功能。
2015年10月16日Hipo 2.0.0正式上线App Store,似乎倏忽间就将这大半年的躁郁一扫而光。上线全新版本,~~限时免费,限时免费,限时免费~~(已经结束限免)^_^
在GitBook上看过一篇文章,一个不写单元测试的程序员不是一个好的攻城狮。坦白的说,在Objective-C这个领域的里,我见过的会主动写单元测试的程序员还是比较少的。当然了,在那些大的开源项目里,我还是见到过很多单元测试的应用。
本书基于Swift 3.x,通过大量案例全面介绍苹果平台的应用开发。全书共分5部分,diyi部分介绍了Swift的一些基础知识,第二部分介绍了基于Swift语言的中高级内容,第三部分主要介绍了Swift与Objective-C/C/C++的混合编程等相关问题,第四部分介绍了基于Swift语言的2D游戏引擎技术,第五部分详细介绍了一个游戏App的开发过程。
在iOS开发过程中,我们经常性会需要获取当前页面的ViewController,然后利用ViewController进行一些操作,例如在最顶层的ViewController上展示一个UIAlertController,或者在最顶层的ViewController上present另一个ViewController,或者进行其他操作。 1 实现思路 通过最底层的ViewController依次向上寻找,直到找到最顶层的ViewController,也就是从UIApplication的keyWindow的r
iOS开发过程中,打包上架苹果审核是一个不可或缺的环节。说实话,这个问题我遇见两次了,为了让自己长点记性,决定写下来。首先,列举几种情况: 1.iPa包上传至App store后,一个小时内不显示构建版本。(等待15分钟-25分钟是正常的)
16年上半年在帮老师,帮外面随便做点东西以便得到些生活费养活自己。下半年去外面公司待了一段时间,然后选择回来帮自己做个东西,历时三个月,独自完成安卓及IOS版本app的开发部分。
1、Apple ID 。这个是指苹果开发者账号(下面还有个App IDs,这两个(Apple ID、App IDs)有些人会搞混,这就有点尴尬了)。有了这个,你才可以登录到App Store去下载App。
玄武门之变是唐高祖武德九年六月初四(公元626年7月2日)由当时唐高祖李渊次子秦王李世民在唐王朝的首都长安城大内皇宫的北宫门——玄武门附近发动的一次流血政变。
不得不承认KVC在开发过程中是神器一般的存在。如果正确灵活使用kvc,会使得整个开发过程轻松很多。简单而强大。
本文介绍了一种技术,该技术可以将纹理压缩并减少应用程序的内存占用。该技术使用了一种名为KTX的格式,可以有效地压缩纹理,同时保持其原始质量。该技术可以用于移动端和桌面端应用程序,可以大大减少内存占用和带宽使用。同时,该技术还可以提高应用程序的性能,减少CPU和GPU的占用,提高应用程序的响应速度。
在实际开发中,为了保证所开发的产品能够尽量完美上线,在上线前会特意测试几轮,保证所开发的应用没有问题。据此,在实际的开发过程中,往往需要区分测试环境和线上环境,在Android开发中,可以通过gradle脚本来识别,并在代码中体现出来。 在ios开发中,如果一个包需要同时包含debug和线上的relase环境,则需要打两个.a文件,然后合并在一起。 除了上述情况之外,有一些App还分为专业版与普通版,而专业版与普通版的区别在于一些功能的有无,对于这样的需求,难道要专门去独立出来两个项目吗?如果要是专门去独立
在实际开发中,为了保证所开发的产品能够尽量完美上线,在上线前会特意测试几轮,保证所开发的应用没有问题。据此,在实际的开发过程中,往往需要区分测试环境和线上环境,在Android开发中,可以通过gradle脚本来识别,并在代码中体现出来。 在ios开发中,如果一个包需要同时包含debug和线上的relase环境,则需要打两个.a文件,然后合并在一起。 除了上述情况之外,有一些App还分为专业版与普通版,而专业版与普通版的区别在于一些功能的有无,对于这样的需求,难道要专门去独立出来两个项目吗?如果要是专门去
Everything you can draw using Cocoa can also be drawn using Quartz.
MVC不是一个新概念,只要有一定开发经验的人基本都知道这个东东。但是之前在业界一直不温不火,直到IOS火起来,这个概念开始为人所熟识并加以运用。究其原因,个人以为是之前的人把MVC搞复杂了(例如ASP.net MVC),IT就是这样,技术越复杂就会越难被人理解接受,越不被人理解接受,自然就不会被大家推广使用。
App Clips是苹果WWDC 2020所发布的iOS 14新特性中最具焦点的一项功能。一经曝光,就引发了互联网上针对其特性的各种讨论。有人说App Clips是苹果模仿微信退出的iOS平台的小程序;有人说它是轻量级的应用程序,为用户提供了简洁版的App体验;同样,对AppClips的评价也是众说纷纭,有人看好也有人看跌,有人觉得是新的平台也有人觉得非常鸡肋。
OK,有日子没写iOS开发的相关文章啦,主要是最近的精力都没在这上面,不过既然产品已经快要出来了,就有必要了解一下各种证书啥的(众所周知iOS的一堆证书可是很让人头大呀),最近确实被这个搞得头大,然后就决定参考网上的一些资料,进行一下整理,留作一个备份。
领取专属 10元无门槛券
手把手带您无忧上云