Titanium appcelerator 是否值得在 ipad、iphone 和 android 上开发基于相机的应用程序? [关闭]

2023-11-23

我想构建一个手机/平板电脑应用程序,其核心功能是用相机拍照、查看图片和接收通知。我还想针对 iphone、ipad 和 android 平台。

Titanium appcelerator 因其跨平台吸引力而引起了我的兴趣。然而我很担心,因为我在 SO 和其他网站上读过褒贬不一的评论。让我担心的是:

  • 低于标准的安卓支持
  • 相机支持不完全(例如 ios 4.1 HDR 功能)
  • 相机支持越野车

对我来说,噩梦般的场景是在钛上投入时间,后来却发现它是一个主要的 PITA,然后放弃它并转向“本土”

请分享您的想法和经验。


我选择钛金属用于一项严肃的应用,尽管该应用不使用相机。我认为有很多因素可能会影响您的决定......

如果您的应用程序打算使用相机做“奇特”的事情,或者进行一些真正繁重的图像处理等,那么您最好选择原生应用。另一方面,如果您只是想让它拍照,然后将它们按原样使用,或发送到服务器,或者其他什么,那么 Titanium 应该可以正常工作。 Titanium 确实有一些处理和图像处理功能,但正如其他人所说,如果您真的想利用设备的硬件,您可能想要完全原生。

还应该指出的是,Appcelerator 也提到了这一点,即使用 Titanium 应用程序,您将不仅仅编写一个在所有设备上按原样运行的应用程序。您需要为每个设备(或设备类别,即 iPhone、Android)定制 UI,因为它们具有不同的 UI 和不同的标准 UI 流程等。

但是,Titanium 的潜在优势之一是,如果您不了解 Objective-C 和/或 Java,但您确实了解 JavaScript(就我而言,我实际上使用的是 Coffeescript:)。或者,如果您更喜欢编写 JS 而不是 ObjC/Java。这是我的主要原因之一。我过去做过一些 ObjC 开发,甚至不介意,但我正在做的这个项目的日程安排非常非常紧迫,而且使用 Titanium 对我来说会更有效。我能够非常快速地设置和构建应用程序,并且我不需要花费任何时间来更深入地熟悉我正在使用的编程语言、内存管理位(对于 Titanium,你不能完全忽略这一点,但本质上他们是为你做的)。根据我交谈过的人,以及他们在内存管理上花费了多少时间,Interface Builder 问题(这主要是容易忘记设置连接或连接各种东西,IB 实际上是一个非常好的工具),以及等等,我很高兴我使用钛。

虽然我希望在某个时候推出 Android 版本,但这并不是优先事项。但是,我很高兴知道我的应用程序代码的很大一部分将可以重用、测试等,并且我最终将主要只是构建/改造 Android 的 UI,而不是重写网络代码、数据管理, 等等。 Titanium 1.5 中的 Android 支持(据说)会更好,但如果优先考虑的话,您可能需要等待该版本来评估 Android。

最后,Titanium 确实有一个“模块”系统,允许您包装本机代码,将其公开为 Titanium 中的 JavaScript 接口。我们即将利用它来集成第三方库,至少对于我们所需要的,它看起来非常易于使用,并且让我更有信心,如果我们需要访问某些特定的本机功能,那么我们有很大的机会在仍然使用 Titanium 的同时集成它,但我认为这将取决于特定的本机功能是什么。

祝你好运,享受构建移动应用程序的乐趣,这非常有趣!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Titanium appcelerator 是否值得在 ipad、iphone 和 android 上开发基于相机的应用程序? [关闭] 的相关文章

  • 使用库来维护免费/付费的应用程序版本

    维护免费 付费应用程序版本的共识似乎是使用库 并从每个活动中设置一个标志 以从代码库中获取不同的功能 这有多安全 据我了解 一个人可以root他们的手机 获取APK 并且可以对其进行反编译 即使代码被混淆 也不难看出该应用程序是带有标志的包
  • android webview 函数 onPagefinished 被调用两次

    我的android webview功能onPageFinished被调用两次 我不知道为什么 但它在 android 2 2 上运行良好 但当我将其升级到 4 时 它就不起作用了 代码附在下面 Code Override public vo
  • Objective C 如何将文本字段添加到导航栏中

    我正在尝试将文本字段添加到导航栏中 但它没有显示在模拟器中 我在 viewdidload 中按如下方式执行 UITextView textField UITextView alloc initWithFrame CGRectMake 0 0
  • Retrofit-2 内容类型问题

    我的 Api 接受 Content Type application json 作为标头 我按照改造文档中所述完美设置了标题 Headers Content Type application json POST user classes C
  • Android 应用被 Google Play 拒绝

    我最近向 Google Play 商店提交了一个 Android 应用程序 但收到一条消息说我的应用程序已被拒绝 我不确定问题是什么 也找不到确切的解决方案 拒绝原因 违反了禁止行为条款 内容政策 经过定期审核后 我们确定您的应用程序支持
  • Xcode 3.1.4 中内置分析器

    我想知道 Xcode 3 1 4 中内置的分析器是否使得单独使用 LLVM Clang 静态分析器变得多余 请参考这里的原文 使用 LLVM Clang 静态分析器查找内存泄漏 http www fruitstandsoftware com
  • 如何在android中设置多个闹钟,在这种情况下最后一个闹钟会覆盖以前的闹钟

    我正在开发一个Android应用程序 用户可以在其中设置提醒时间 但我在以下代码中遇到一个问题 即最后一个警报会覆盖之前的所有警报 MainActivity java public void setreminders DatabaseHan
  • 如何将 android.net.Uri 转换为 java.net.URL? [复制]

    这个问题在这里已经有答案了 有没有办法从Uri to URL 我正在使用的库需要这个 它only接受一个URL但我需要在我的设备上使用图像 如果该方案的Uri is http or https new URL uri toString 应该
  • 对于某些纹理尺寸,glFramebufferTexture2D 在 iPhone 上失败

    当我尝试将纹理附加到帧缓冲区时 glCheckFramebufferStatus 报告某些纹理大小的 GL FRAMEBUFFER UNSUPPORTED 我已经在第二代和第四代 iPod Touch 上进行了测试 两个模型之间失败的纹理尺
  • iPhone - 如何在矩形中间绘制文本

    有没有一种方法可以在矩形中间绘制文本 我可以找到各种对齐方式 但我尝试过的任何方法都不能将文本垂直居中在矩形中 有没有一种简单的方法可以做到这一点 或者有什么方法可以将矩形居中然后在其中绘制 我直接绘制到 CGContext 尝试使用 NS
  • Android Studio IDE 上的“文本/设计”选项卡缺少新的 Android 项目

    如何在创建新项目期间自动创建的 Activity main xml 文件的 src main res layout 文件夹中启用文本 设计选项卡 如果我右键单击并在所述文件夹上创建 xml 文件 则设计 文本选项卡存在 有什么建议吗 谢谢
  • Android 从命令行停止模拟器

    这个问题与如何通过命令行关闭Android模拟器 https stackoverflow com questions 5912403 how to shut down android emulator via cmd 但是 在尝试第一个答案
  • Android Studio 将音乐文件读取为文本文件,如何恢复它?

    gameAlert mp3是我的声音文件 运行应用程序时 它询问我该文件不与任何文件类型关联 请定义关联 我选择TextFile错误地 现在我的音乐文件被读取为文本文件 我如何将其转换回music file protected void o
  • Espresso 和 Proguard 的 Java.lang.NoClassDefFoundError

    我对 Espresso 不太有经验 但我终于成功地运行了它 我有一个应用程序需要通过 Proguard 缩小才能处于 56K 方法之下 该应用程序以 3 秒的动画开始 因此我需要等到该动画结束才能继续 这就是我尝试用该方法做的事情waitF
  • 在 Honeycomb Android 3.0 中显示 Action Bar 菜单项的图标

    我正在使用 Honeycomb android 3 0 开发 Android 应用程序 我正在尝试在 Action Bar 中显示菜单 菜单有一个图标和标题 当我们单击菜单项时 它会以下拉列表的形式显示其项目 它是下拉列表中带有项目名称但不
  • Android 自定义警报对话框中的 OnClickListener

    我是一个自学成才的初学者 感谢耐心 谢谢 在 Eclipse 中 我使用自己的 xml 文件 custom dialog 创建了一个自定义警报对话框 称为 usernamealert 如果用户尚未输入用户名 即 username lengt
  • UINavigationController 在 UITabBarController 的 moreNavigationController 中不起作用

    我正在处理UINavigationControllers在我的应用程序中 全部由UITabBarController 一切工作正常 直到我的控制器落入自动生成的 更多 选项卡 我在简单的示例中重现了该问题 难道我做错了什么 我想不通 感谢您
  • Android ScrollView fillViewport 不工作

    我有一个简单的布局 名称位于顶部 按钮位于屏幕底部 或者超出该按钮 以防我添加更多项目 所以我使用带有 LinearLayout 的 ScrollView 如下所示
  • Android:如何检测手机设置中的语言已更改

    我如何检测我的手机语言是否已更改 例如 Facebook 应用程序将向我们宣布 please wait we preparing your language i used myString Locale getDefault getDisp
  • Android 和 Java 中绘制椭圆的区别

    在Java中由于某种原因Ellipse2D Double使用参数 height width x y 当我创建一个RectF在Android中参数是 left top right bottom 所以我对适应差异有点困惑 如果在 Java 中创

随机推荐

  • 如何使“过期”的 Firebase 实例 ID 令牌失效

    AFAIK Firebase实例令牌将在以下4种情况下刷新 应用程序删除实例ID 应用程序已在新设备上恢复 用户卸载 重新安装应用程序 用户清除应用数据 假设用户使用令牌 A 作为他的 FCM 地址 每次登录应用程序时 他都会将令牌 A 以
  • “找不到 CFBundle/CFPlugIn 的可执行文件”错误

    找不到 CFBundle CFPlugIn 0x432bfa0 的可执行文件 未加载 在 CFBundle CFPlugIn 0x432bfa0 中找不到工厂 C5A4CE5B 0BB8 11D8 9D75 0003939615B6 的函数
  • jqGrid - 动态设置标题

    我有captionjqGrid 定义中的参数集 我想知道是否有一种方法可以根据情况动态设置它classjqGrid 插件所附加的表元素的属性 HTML 1 table class view table div div HTML 2 tabl
  • 在 Linux 机器上创建自解压 zip 存档

    由于许多我不会涉及的限制 我必须在 Linux 机器上创建一个自解压 ZIP 存档 生成的存档只能在 Windows 上执行 这是可能吗 如果是这样 什么工具可以完成这项工作 背景 当用户从我的 Linux 盒子下载安装包时 我需要使用某个
  • 如果在单独的类中定义异常子句,Camel 异常处理将不起作用

    我正在尝试构建一个具有多个骆驼路线的应用程序 这些路线在内部重用许多常见路线 因此 我尝试将路由分隔在几个不同的路由生成器类中 然后在需要的地方连接路由 例如 与发送电子邮件有关的所有路由都进入 EmailRouteBuilder 类 而处
  • 使用 Laravel (Localhost) 通过表单将文件发送到电子邮件

    Laravel 新手 所以要友善 哈哈 我的 mail php 配置是正确的 并且可以成功接收电子邮件以进行 gmail 的文本输入 但不确定如何完成文件任务 我希望得到一些帮助或参考链接 提前致谢 代码在routes php中 Route
  • iOS 8 CoreBluetooth 已弃用 RSSI 方法

    所以从阅读CBPeripheralDelegate文档 看来RSSI and peripheralDidUpdateRSSI error iOS 8 中已弃用 Xcode 警告 iOS 8 0 中已弃用 rssi 我注意到我的信号强度指示器
  • 测量 Cortex m7 上的时钟周期数

    我一直在测量 Cortex m4 上的时钟周期计数 现在想在 Cortex m7 上进行测量 我使用的板子是STM32F746ZG 对于 m4 一切都适用 volatile unsigned int DWT CYCCNT volatile
  • R光栅包将图像分割成多个

    我有一个如下图 它是2579 2388像素 假设它的左下角位于 0 0 我想从该图像创建多个图像 如下所示并将它们保存在工作文件夹中 每个图像的大小为 100 100 像素 每个图像将通过其左下角坐标保存 第一张图像的左下角位于 0 0 右
  • 将通用列表转换为 CSV 字符串

    我有一个整数值列表 List 并且想生成一串逗号分隔值 即列表中的所有项目输出到单个逗号分隔列表 我的想法 1 将列表传递给方法 2 使用stringbuilder迭代列表并追加逗号 3 测试最后一个字符 如果是逗号 则将其删除 你怎么看
  • 在 dataclass(slots=True) 子类中调用 super() 时出现类型错误

    我试图从数据类调用超类方法slots True在 Python 3 10 5 中 from dataclasses import dataclass dataclass slots True class Base def hi self p
  • TK框架双重实现问题

    我正在测试使用 Tkinter 模块创建 GUI 我试图使用 PIL 将图像添加到 GUI 我的代码如下所示 import Tkinter as tk from PIL import Image ImageTk root tk Tk roo
  • 未找到活动数据。使用谷歌分析 v4

    我收到此错误 I GAV4 7915 Thread GAThread 5 main 未找到活动数据 有人知道我出了什么问题吗 我正在使用 Android API 级别 20 谷歌分析 v4 安卓设备4 2 2 Constants TRACK
  • 对 HTML 实体进行编码但忽略 HTML 标签 - 在 PHP 中

    我有一个可能看起来像这样的字符串 str p Me Mrs Jones br live in strong style color FFF Espa a strong p htmlentities str ENT COMPAT UTF 8
  • 在node.js中使用formidable和express时如何更改上传路径

    实际上我遇到了两个问题 一 如何更改上传路径 我的文件夹结构是这样的 app js upload 我的节点代码位于 app js 中并从中启动 所以我想将上传图片上传到上传文件夹 我更改路径 var form new formidable
  • iOS 11 禁用密码自动填充附件视图选项?

    截至目前 我想选择退出 iOS 11 提供的新选项 即在应用程序中建议密码 当我在 iOS 11 上运行该应用程序时 我在键盘顶部看到自动填充选项 但我的用户名和密码文本字段甚至不显示 所以 我的问题是 如何一起禁用新密码自动填充功能 以便
  • WPF 中的 DialogResult 与FolderBrowserDialog

    我第一次在 WPF 中实现FolderBrowserDialog 但我一点也不喜欢它 除了我发现我的项目中没有引用 Windows Forms 的问题之外 现在我在尝试查看 DialogResult 返回值是什么时遇到了麻烦 对于 Open
  • MSBuild如何找到Delphi搜索路径?

    如果我启动 RAD Studio 命令提示符并运行 msbuild t Rebuild 在项目目录中 msbuild 将显示调用 dcc32 的完整命令行 包括所有路径设置 MSBuild 使用哪种魔法来根据 IDE 设置 存储在注册表中
  • 多次加密(MD5)可以提高安全性吗?

    我看到有人用 MD5 对用户密码进行多次加密以提高安全性 我不确定这是否有效 但看起来不太好 那么 这有意义吗 我们假设您使用的哈希函数是一个完美的单向函数 然后你可以像查看它的输出一样查看它的输出 随机神谕 其输出值在有限的值范围内 MD
  • Titanium appcelerator 是否值得在 ipad、iphone 和 android 上开发基于相机的应用程序? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我想构建一个手机 平板电脑应用程序 其核心功能是用相机拍照 查看图片和接收通知 我还想针对 iphone ipad 和 android 平台 Titanium appcelerator 因